Как мне отобразить неанглийские символы из базы данных mysql с помощью php?

#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.

http://us.php.net/manual/en/function.utf8-decode.php

Комментарии:

1. Моя база данных и таблицы уже находятся в форме utf8, и я могу видеть неанглийские буквы в области просмотра таблиц phpmyadmin, только на моей веб-странице это не отображается — я также включил тип содержимого utf8!

2. В Firefox на странице phpMyAdmin щелкните правой кнопкой мыши -> Информация о странице, у вас должно появиться окно с кодировкой. Теперь проделайте то же самое со своей PHP-страницей, и если она отличается от Phpmyadmin, это означает, что у вас проблема.