БлогNot. Запись #178 (без заголовка)

С PHP 5.1.0 часть скриптов на локалхосте Windows тупо перестала добавлять кириллицу... просто

dbquery("SET CHARACTER SET win-1251",$conid);

а не

dbquery("SET CHARACTER SET default",$conid);

в их файлах db.php (мой стандартный файл для базовых операций с БД). Видимо, теперь Unicode - стандартная кодировка.

P.S. И вообще, этот синтаксис неправильный. Не надо "win-1251" в SQL:

mysql_query("SET NAMES 'cp1251'");
mysql_query("SET CHARACTER SET 'cp1251'");

MySQL и русская кодировка WINDOWS-1251

Сегодня мы рассмотрим, что нужно написать в конфигурационном файле /etc/my.cnf для того, чтобы настроить mysql стандартной сборки на работу с кодировкой cp1251 по умолчанию без всякой перекомпиляции.

Рассмотрим пример конфига на основе MySQL 5.x.

В раздел [mysqld] необходимо добавить следующее:

default-character-set=cp1251

character-set-server=cp1251

collation-server=cp1251_general_ci

init-connect=»SET NAMES cp1251″

skip-character-set-client-handshake

Две последние строки принудительно устанавливают кодировку cp1251 для всех запросов.

В раздел [mysqldump] достаточно добавить только

default-character-set=cp1251

Этого достаточно, чтобы MySQL работал с windows-1251 кодировкой по умолчанию.

29.09.2009, 13:42 [9547 просмотров]


теги: язык памятка php mysql сервер

К этой статье пока нет комментариев, Ваш будет первым