Digital Artcore

Знаки вопроса вместо русских букв после перехода на MySQL 4.1

Когда я переводил свой сайт с одного сервера на другой, решил проверить его на совместимость. В результате сменилось абсолютно все — начиная с самой машины, где хостились мои страницы, заканчивая версией MySQL (про смену операционки и версии PHP вообще молчу). Вобщем поменялось все. И вот какая бяка случилась — работало все прекрасно, за исключением отображения содержимого записей базы данных, содержащих кириллицу. Проще говоря, все что было в базе MySQL на русском выводилось знаками вопроса.

Казалось бы — в чем деле вопрос? Раньше у меня была версия MySQL 4.0, теперь 4.1. Сел, поискал на яндексе и обнаружил что не я один такой несчастный. В версии 4.1 разработчики добавили поддержку юникода и для правильной работы надо было конвертировать базу. У меня времени на это не было, да и неохота было, если честно. Покопавшись еще нашел быстрое решение — работает хорошо, а если используется движок с унифицированным интерфейсом запросов, то и вовсе проблема решается за несколько секунд.

Короче говоря, если явно указать кодировку запроса, то вместо вопросительных знаков появляются русские буквы. У меня это выглядит вот так:

mysql_query («set character_set_client=’cp1251′», $link);
mysql_query («set character_set_results=’cp1251′», $link);
mysql_query («set collation_connection=’cp1251_general_ci'», $link);

Маленькое дополнение: оказывается все три вышеприведенные команды можно заменить одной:

mysql_query(«SET NAMES ‘cp1251′», $link);

Top! © Digital Artcore. All rights reserved.
Social Links:
FACEBOOK
TWITTER
[extraWatchAgent]