Сравнение в базе должно стоять utf8_general_ci
Вид для печати
У многих (уже где-то 8 человек ко мне обращались с подобными вопросами), даже на новых версиях плагина, возникают проблемы с кодировкой при использовании этого кода. И решаются эти проблемы отправкой запросов через mysql_query.
В причины появления подобного я не вникал, но подразумеваю, что такое случается, когда один запрос обрабатывается быстрее другого и, вероятно, некоторые изменяемые параметры зависимы от других, из-за чего и происходит слёт.
Вот, если что, пример такой проблемы, где я более подробно описал возможную причину
Было бы не плохо, узнать какая версия MySQL? (потому, что когда писал под R33-R39, оно работало). Вчера на сервере с онлайном фиксил проблему с кодировкой. Там версия R39-2 и тут уже появляются не явные проблемы. Решил так:
Если, кто-то не понял, то SET NAMES = cp1251. Правда, я не сторонник Windows1251. (адовая кодировка, которая под другими ОСями не живет). Нужно проверять метод от @DeimoSPHP код:
mysql_tquery(sql_connection, !"SET CHARACTERSET 'utf8'","","");
mysql_tquery(sql_connection, !"SET NAMES 'cp1251'","","");
mysql_tquery(sql_connection, !"SET character_set_client = 'cp1251'","","");
mysql_tquery(sql_connection, !"SET character_set_connection= 'cp1251'","","");
mysql_tquery(sql_connection, !"SET character_set_results= 'cp1251'","","");
mysql_tquery(sql_connection, !"SET SESSION character_set_server= 'utf8'","","");
mysql_tquery(sql_connection, !"SET SESSION collation_connection= 'utf8_general_ci'","","");
Версия плагина последняя. Я и сам подобным страдал на локальном сервере, но я тогда и кодировки по всякому пробовал менять (как в базе, так и в твоих запросах), и потом перешёл на mysql_query (при этом, отвлекаясь периодически), так что точно не смог определить закономерность, которая помогла решить проблему.
Весь мод сохранен в 1251 и благополучно запускается. Работает так же на *nix системах. Кодировка базы utf8_general_ci.
Вот все мои настройки:
PHP код:
mysql_debug(true);
mysql_set_charset("cp1251");
mysql_function_query(mysql_connect_id, "SET NAMES cp1251", false, "", "" ) ;