tFF.msk.ru :: Sharing tFFed mind

Технологично => Веб => Тема начата: tFF от Январь 16, 2006, 18:10:23



Название: Проблема с кодировкой в MySQL
Отправлено: tFF от Январь 16, 2006, 18:10:23
Цитировать
"По умолчанию на нашем хостинге установлен charset - latin1, collation - latin1_binary."

Это мой хостер. И он рекомендует, "...Для того чтобы текст написанный в кодировке CP-1251, отображался правильно на вашем сайте, а не виде вопросов, достаточно вписать в скрипте который вы используете для вашего сайта следующие команды после соединения с базой данных :
Код:
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");


Название: Re: Проблема с кодировкой в MySQL
Отправлено: tFF от Февраль 28, 2006, 23:23:29
Также некоторое представление о проблемах кодировки между UTF-8 и CP1251 может дат (http://mambo.mrezha.ru/MySQL_versions/).
Также медитируем над разделом Character Set Support (http://dev.mysql.com/doc/refman/5.0/en/charset.html) документации к MySQL.
+ FAQ по Мускулу на мастерхосте (http://masterhost.ru/support/doc/mysql/)


Название: Re: Проблема с кодировкой в MySQL
Отправлено: tFF от Октябрь 23, 2006, 12:03:01
Знаки вопроса вместо русских букв в cp1251 (MySQL 5 + PHP 5)

1. В серверной части my.cnf (разделы: [mysqld] и/или [mysqld_safe]) прописываем:
init-connect = 'SET NAMES cp1251'

2. init-connect задает последовательность действий при установлении каждого соединения. НО! данная последовательность действий не будет выполняться под пользователем с супер-правами. Т.е. для того чтобы эта "настройка" заработала, надо создать пользователя базы, который не обладает супер-правами, а обладает только правами для конкретной базы.


пример my.cnf:
Код:
[client]
port = 3306
default-character-set = cp1251

[mysqld_safe]
character-set-server = cp1251
init-connect = 'SET NAMES cp1251'

[mysqld]
port = 3306
character-set-server = cp1251
init-connect = 'SET NAMES cp1251'


И не надо будет никаких "костылей" после mysql_connect (см. первое сообщение (http://tff.msk.ru/forum/index.php/topic,172.msg458.html#msg458))

PS Также полезно почтитать о том, как люди бились с мускулом и цп1251 (http://forum.dklab.ru/denwer/base/ZnakiVoprosaVmestoKirillitsiVMysql4.html), чтобы не повторять чужих ошибок.