Petr
Новичок
и снова кодировка... (русский отображается везде, но работать не хочет всё равно!)
Всем доброго времени суток!
Сразу хотелось бы уточнить, что прочитал на форуме, кажется, всё, что относилось к проблеме с кодировками. В любой из проблем русские символы хоть где-нибудь, но отображаются неправильно. У меня – нет. И в phpmyadmin, и на сайте… И, в принципе, даже сравнение с регулярным выражением работает:
$pattern="/(\b".$row->name.")/";
if (preg_match($pattern,$param)) ...
Проблема в том, что работает это сравнение не полностью - $row->name (выбрано из базы) определяется и находится, а вот всякие другие спецификаторы (\b \W \w и т.д.) – никак.
Вдобавок к этому не работает модификатор /i (регистронезависимое сравнение). Не работает функция strtoupper – выдает кракозябры (квадратики).
Подскажите, пожалуйста, в чем дело. Совсем запутался.
Видимо, что-то СОВСЕМ не в порядке с кодировкой, но я не могу понять, что...
Локально (Денвер) всё работает идеально, на сервере отказывается - хоть убейся...
Локально вот такие настройки для mysql:
character set client cp1251 cp1251
character set connection cp1251 cp1251
character set database cp1251 cp1251
character set results cp1251 cp1251
character set server cp1251 cp1251
character set system utf8 utf8
character sets dir \usr\local\mysql4/share/charsets \usr\local\mysql4/share/charsets
collation connection cp1251_general_ci cp1251_general_ci
collation database cp1251_general_ci cp1251_general_ci
collation server cp1251_general_ci cp1251_general_ci
version 4.1.16-max 4.1.16-max
Настройки на сервере другие. Пробовал их менять в разных комбинациях - не помогает:
character set client utf8
(Глобальное значение) cp1251
character set connection utf8
(Глобальное значение) cp1251
character set database cp1251
character set filesystem binary
character set results utf8
(Глобальное значение) cp1251
character set server cp1251
character set system utf8
character sets dir /usr/share/mysql/charsets/
collation connection utf8_unicode_ci
(Глобальное значение) cp1251_general_ci
collation database cp1251_general_ci
collation server cp1251_general_ci
version 5.0.27
-----------------------------------------
Вопрос в том, какие они должны быть, чтобы всё работало... и в том, почему всё не работает...
У таблицы и базы данных, из которых делаю выборку - кодировка utf8_general_ci.
Пробовал SET NAMES кодировка - выдает крокозябры на всё, кроме utf8.
2-ой описанный способ (SELECT CONVERT..) пробовать нет смысла, да? В phpmyadmin символы русские...
Всем доброго времени суток!
Сразу хотелось бы уточнить, что прочитал на форуме, кажется, всё, что относилось к проблеме с кодировками. В любой из проблем русские символы хоть где-нибудь, но отображаются неправильно. У меня – нет. И в phpmyadmin, и на сайте… И, в принципе, даже сравнение с регулярным выражением работает:
$pattern="/(\b".$row->name.")/";
if (preg_match($pattern,$param)) ...
Проблема в том, что работает это сравнение не полностью - $row->name (выбрано из базы) определяется и находится, а вот всякие другие спецификаторы (\b \W \w и т.д.) – никак.
Вдобавок к этому не работает модификатор /i (регистронезависимое сравнение). Не работает функция strtoupper – выдает кракозябры (квадратики).
Подскажите, пожалуйста, в чем дело. Совсем запутался.
Видимо, что-то СОВСЕМ не в порядке с кодировкой, но я не могу понять, что...
Локально (Денвер) всё работает идеально, на сервере отказывается - хоть убейся...
Локально вот такие настройки для mysql:
character set client cp1251 cp1251
character set connection cp1251 cp1251
character set database cp1251 cp1251
character set results cp1251 cp1251
character set server cp1251 cp1251
character set system utf8 utf8
character sets dir \usr\local\mysql4/share/charsets \usr\local\mysql4/share/charsets
collation connection cp1251_general_ci cp1251_general_ci
collation database cp1251_general_ci cp1251_general_ci
collation server cp1251_general_ci cp1251_general_ci
version 4.1.16-max 4.1.16-max
Настройки на сервере другие. Пробовал их менять в разных комбинациях - не помогает:
character set client utf8
(Глобальное значение) cp1251
character set connection utf8
(Глобальное значение) cp1251
character set database cp1251
character set filesystem binary
character set results utf8
(Глобальное значение) cp1251
character set server cp1251
character set system utf8
character sets dir /usr/share/mysql/charsets/
collation connection utf8_unicode_ci
(Глобальное значение) cp1251_general_ci
collation database cp1251_general_ci
collation server cp1251_general_ci
version 5.0.27
-----------------------------------------
Вопрос в том, какие они должны быть, чтобы всё работало... и в том, почему всё не работает...
У таблицы и базы данных, из которых делаю выборку - кодировка utf8_general_ci.
Пробовал SET NAMES кодировка - выдает крокозябры на всё, кроме utf8.
2-ой описанный способ (SELECT CONVERT..) пробовать нет смысла, да? В phpmyadmin символы русские...