2012-02-07 7 views
0

У меня есть несколько таблиц, которые установлены в utf8_general_ci, и я использую PHP-драйвер mysqli, с набором символов, который установлен в 'utf8'. Я default_charset также установлен UTF-8PHP и MySQLi UTF8

Однако символы заменяются «» \u0101l

Любая идея, что это или как это исправить? Раньше у меня не было mysqli, использующего utf8, и он просто показывал вопросительный знак, а не знак вопроса о бриллианте - просто регулярный '?'

Спасибо!

+0

AFAIK MySQL никогда не будет JSON кодировать символы. Пожалуйста, отлаживайте шаг за шагом, в какой момент именно это происходит. – deceze

+0

Как насчет вашего кодирования файлов PHP? Это тоже UTF-8? –

ответ

1

Я уверен, что вы используете «htmlentities()» или «html_entity_decode()» где-то. Проблема заключается в том, что htmlentities() все еще пытается интерпретировать свой вход в ISO-8859-1, тогда как html_entity_decode() теперь по умолчанию выполняет UTF-8. Решение. Если вы используете какую-либо из перечисленных выше функций, явным образом указываю тип кодировки каждый раз. У меня была эта проблема и сотрудник шахты написал статью на эту тему также http://lab.clearpixel.com.au/2012/01/html-entity-character-conversion-in-php/

Я надеюсь, что это помогает