Отправка китайских иероглифов в форму отображается неправильно - кодировка UTF8 используется повсеместно - PullRequest
1 голос
/ 17 ноября 2011

Я использую CakePHP.У меня есть:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> установлено в моем шаблоне.

Configure::write('App.encoding', 'UTF-8'); установлено.

В моей базе данных используется кодировка utf-8, (в database.php - (encoding=>'utf8')и если я вручную введу китайские иероглифы, они будут сохранены правильно, и я могу вывести их без проблем.

Этот снимок экрана показывает вывод:

http://i.stack.imgur.com/P04iz.jpg

Номер 1результат, когда я вручную вставляю китайские символы в свою базу данных MYSQL (используя utf8_unicode_ci).

4 и 5 - это то, что происходит, когда я отправляю китайские символы из моей формы - непонятная тарабарщина.

Кодировка формы:

<form action="/controller/add" accept-charset="utf-8" id="ControllerAddForm" method="post">

, поэтому она должна принимать utf-8 символов. Я могу ввести их; они хорошо отображаются в текстовом поле, но все, что я отправляю, становитсяужасно изуродованный.

Есть идеи?

Ответы [ 3 ]

0 голосов
/ 20 ноября 2011
* Отметка

и Брайан сказали, проверьте параметр Accept-Encoding в заголовке POST и в вашей базе данных набор символов .

0 голосов
/ 29 ноября 2011

Возможно, это не символы, совместимые с UTF-8 ...

http://www.126.com/ использует charset = gb2312

http://en.wikipedia.org/wiki/GB_2312

0 голосов
/ 17 ноября 2011

Вы также установили соединение с базой данных на UTF-8 в database.php?

Для MySQL это будет:

'encoding' => 'utf8' // no hyphen
...