Проблемы с кодировками БД
Решение проблемы с кодировкой базы данных MySQL.
Симптомы проблемы с кодировками в БД
а) В phpMyAdmin содержимое таблиц отображается корректно, а в скрипт приходят вопросительные знаки или нечитаемый текст.
б) Скрипт отправляет в базу данных заведомо русский текст, после чего на запросы к базе как в скрипт, так и в phpMyAdmin возвращаются знаки вопроса или нечитаемый текст.
Решение проблемы с кодировками
- Попробуйте в начале скрипта, сразу после инициализации соединения с базой данных (mysql_connection), выполнить SQL-команду: SET NAMES (кодировка).
Где «кодировка» — та кодировка, в которой у вас (по вашему мнению) данные. Это может быть, например, cp1251, koi8r, utf8 и другие. Если буквы стали русскими — данные в базе находятся в правильной кодировке. Если буквы стали русскими, но слова не читаются (например, вместо слова «вопрос» возвращается слово «бнопня») — надо попробовать другую кодировку.
Пример PHP:
mysql_query("SET NAMES utf8");
-
Более простой способ - открываем дамп БД в любом текстовом редакторе, позволяющем менять кодировку при просмотре и сохранение.
1. Открываем дамп БД в редакторе, например KWrite
2. Выбираем такую кодировку для просмотра, чтобы дамп БД отображался корректно, например cp1251:
3. Сохраняем дамп БД, указывая кодировку utf-8: