#php #mysql #character-encoding
#php #mysql #кодировка символов
Вопрос:
Я создал веб-страницу, для которой требуется хранить информацию неанглоязычными символами. Я создал базу данных и таблицу с помощью phpMyAdmin с кодировкой utf8 и сопоставил utf8_general_ci, и я ввожу некоторые образцы данных в эту таблицу, в области просмотра phpMyAdmin я вижу неанглоязычные символы, но когда я запрашиваю эти табличные данные с помощью php, они отображаются как вопросительный знак (????? вот так)
Ответ №1:
Попробуйте добавить это в свой заголовок:
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
Смотрите Эту страницу, чтобы узнать о различных способах выполнения этого для разных типов контента.
Комментарии:
1. Я добавил эти строки, но я все еще получаю вопросительные знаки
2. Убедитесь, что ваш php-клиент также использует набор символов utf-8, mysql_set_charset(‘utf8’, $ conn); Смотрите справочную страницу для этой функции .
3. Когда вы открываете соединение с базой данных с помощью mysql_connect () Я полагаю, вам нужно быть уверенным, что клиент использует utf8. Возможно, БД открывает клиентские подключения к ISO-8859-1 по умолчанию или какой-либо другой кодовой странице, отличной от utf8.
Ответ №2:
Как вы определяете, что результат вашего запроса неправильно сформирован в формате utf8? ЕСЛИ вы отображаете это на веб-сайте, пожалуйста, не забудьте иметь правильно сформированную мета-конструкцию в вашем заголовочном разделе, что-то вроде этого:
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
или другой способ форматирования в php…
<?
...somecode...
header ('Content-type: text/html; charset=utf-8');
...morecode...
В противном случае ваш браузер может попытаться отобразить его, используя другую кодировку символов.
В целом PHP довольно хорошо обрабатывает символы utf8. Конечно, нужно учитывать некоторые моменты, вот хорошее резюме по этому поводу.
Ответ №3:
Если остальная часть вашей базы данных не в формате UTF8, а только эта таблица в формате UTF8, вы можете либо изменить кодировку в заголовке вашего HTML, либо использовать utf8_decode () для декодирования строки utf8.
Комментарии:
1. Моя база данных и таблицы уже находятся в форме utf8, и я могу видеть неанглийские буквы в области просмотра таблиц phpmyadmin, только на моей веб-странице это не отображается — я также включил тип содержимого utf8!
2. В Firefox на странице phpMyAdmin щелкните правой кнопкой мыши -> Информация о странице, у вас должно появиться окно с кодировкой. Теперь проделайте то же самое со своей PHP-страницей, и если она отличается от Phpmyadmin, это означает, что у вас проблема.