качество и надёжность с 2008 года

8 (800) 200-25-11

Техническая поддержка support@komtet.ru —

круглосуточно и без выходных дней

load-whois

Онлайн-касса

для интернет-магазина

Подключите ваш интернет-магазин

к онлайн-кассе в соответствии с 54-ФЗ

 
Главная Техническая библиотека Справка СУБД MySQL, PostgreSQL Проблемы с кодировками БД

Проблемы с кодировками БД

Решение проблемы с кодировкой базы данных MySQL.

Симптомы проблемы с кодировками в БД

а) В phpMyAdmin содержимое таблиц отображается корректно, а в скрипт приходят вопросительные знаки или нечитаемый текст.

б) Скрипт отправляет в базу данных заведомо русский текст, после чего на запросы к базе как в скрипт, так и в phpMyAdmin возвращаются знаки вопроса или нечитаемый текст.

Решение проблемы с кодировками

  • Попробуйте в начале скрипта, сразу после инициализации соединения с базой данных (mysql_connection), выполнить SQL-команду: SET NAMES (кодировка).

Где «кодировка» — та кодировка, в которой у вас (по вашему мнению) данные. Это может быть, например, cp1251, koi8r, utf8 и другие. Если буквы стали русскими — данные в базе находятся в правильной кодировке. Если буквы стали русскими, но слова не читаются (например, вместо слова «вопрос» возвращается слово «бнопня») — надо попробовать другую кодировку.

Пример PHP:

mysql_query("SET NAMES utf8");
  • Более простой способ -  открываем дамп БД в любом текстовом редакторе, позволяющем менять кодировку при просмотре и сохранение.
    1. Открываем дамп БД в редакторе, например KWrite
    2. Выбираем такую кодировку для просмотра, чтобы дамп БД отображался корректно, например cp1251:



    3. Сохраняем дамп БД, указывая кодировку utf-8:



Скидка 30% на SSL-сертификаты!
Клиентам — домены в подарок!
Бесплатный тест виртуального хостинга
Перенос сайта — бесплатно
Все акции
На сайте КОМТЕТ используются cookie-файлы, данные о IP-адресе и местоположении посетителей. Если, прочитав это сообщение, вы остаетесь на нашем сайте, это означает, что вы не возражаете против использования этих технологий.