Mysql дисплей китайских иероглифов - PullRequest
2 голосов
/ 17 октября 2011

Я давно использую php + mysql (phpmyadmin) для создания веб-сайтов с китайским контентом (utf-8).

При вводе форм, а также генерации выходного php из db, китайские слова хорошо отображаются; но когда я смотрю на базу данных, хотя иногда они являются обычными китайскими иероглифами, но что-то не так (становятся странными строками), это заставило меня заметить, что способ обработки и ввода данных в mysql не всегда utf-8.

Некоторые эксперты в сети упоминали, что mysql использовался для записи входных данных latin1; тем не менее, я отмечаю, что существующая кодировка в phpmyadmin - это utf-8 ...

Будет ли какой-нибудь надежный способ определения формата кодировки китайских символов, отображаемый в ячейке таблицы phpmyadmin?

Кроме того, кроме упоминания в заголовке страницы, будет ли какой-либо метод, чтобы я мог убедиться, что введенные в базу данных данные - это utf-8, но не другие?

Спасибо.

Ответы [ 2 ]

5 голосов
/ 17 октября 2011

Самая большая проблема, с которой люди сталкиваются в этом отношении, заключается в том, что они не сообщают MySQL, что они отправляют / ожидают данные в кодировке UTF-8 при подключении к базе данных, поэтому MySQL считает, что он должен обрабатывать данные, закодированные в латинице 1, и преобразовывает это соответственно. Выполните команду SET NAMES utf8 после подключения к БД или используйте mysql_set_charset.

0 голосов
/ 15 мая 2016

в моем случае это просто потому, что htmlentities(); Решение - это изменение echo htmlentities($email_db); на echo htmlentities($email_db, ENT_COMPAT, 'UTF-8');

...