[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

php4 mysql-4.1 connecton charset



Hi All.

Пишу для вслед идущим, благо в unstable уже php4-4.4.2 собран с
libmysqlclient15-dev (от mysql 5.0). А стонами - завалено пол интернета.

Проблема в том, что сейчас в stable php собран с libmysqlclient12-dev (от
mysql 4.0), который _не_ договаривается с сервером о используемых
кодировках. Если сайто-писатели не предпринимают никаких действий для
установки правильного чарсета (а они обычно этого не делают), то апгрейд на 
mysql-server-4.1 и соответственно libmysqlclient14-dev вызывает одну большу
проблему - все данные из mysql у таких писателей отображаются вопросами.

Суть проблемы - бибилиотека от mysql-4.1 согласует с сервером
character_set_client, character_set_connection и character_set_results, 
которые по умолчанию стоят в latin1.

Был найден патч [1] для 5.0.4, который использует новую опцию
mysql_real_connect() - MYSQL_SET_CHARSET_NAME для установки 
дефолтного чарсета. 

Я подправил его для 4.4.2 и выложил у себя [2].

Патч добавляет опцию mysql.set_names которая позволяет указывать чарсет по
умолчанию без изменения всех phpшных скриптов.

[1]
http://www.mysql.gr.jp/frame/modules/bwiki/index.php?plugin=attach&refer=Contrib&openfile=php-5.0.4-mysql.c.patch
http://www.temnota.kmv.ru/php/php-5.0.4-mysql.c.patch

[2]
http://www.temnota.kmv.ru/php/php4-4.4.2-mysql.c-charset.diff




Reply to: