MySQL китайская проблема пиньиньской кодировки - PullRequest
3 голосов
/ 28 августа 2011

У меня в базе данных MySQL установлено utf8.Мои переменные charset / collation:

Имя переменной | Значение

character_set_client |utf8

character_set_connection |utf8

character_set_database |utf8

character_set_filesystem |двоичный файл

character_set_results |utf8

character_set_server |latin1

character_set_system |utf8

collation_connection |utf8_general_ci

collation_database |utf8_general_ci

collation_server |latin1_swedish_ci

У меня есть веб-страница, на которой отображаются китайские иероглифы и пиньинь из нашей базы данных MySQL.Китайские иероглифы отображаются нормально, но пиньинь искажен.Например,

отображает: NánjÄ «ng right: Nánjīng

Теперь я проверяю кодировку страницы, и она установлена ​​в UTF8.Я повторил Nánjīng в PHP, и он отображается нормально.Я проверил данные в командной строке, и это правильно в базе данных.Однако всякий раз, когда он проходит через запрос, он искажает пиньинь, но не китайские символы.Кто-нибудь знает, почему это может происходить?

Ответы [ 2 ]

2 голосов
/ 04 мая 2015

если вы хотите сохранить пиньинь в базе данных mysql, вы должны кодировать его с помощью base64_encode (); , а во время отображения вы должны кодировать его с помощью base64_decode (); и один из самых важных, вы должны использовать заголовок ('Content-Type: text / html; charset = utf8 general ci'); вверху страницы

2 голосов
/ 28 августа 2011

Я понял это. Это была проблема сопоставления. Я изменил cnf, чтобы установить для переменной collation_server значение utf8_general_ci, а затем повторно импортировал мои данные, и они отлично работают ... Я не знаю, почему я раньше не думал об этом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...