База данных PHP MySQL странные символы

Я пытаюсь произвести информацию о продукте, сохраненную в базе данных MySQL, но она выписывает некоторые странные символы, как ромб с вопросительным знаком в нем.

Я думаю, что это может быть проблема encoding/UTF8, но я указал кодирование, которое я хочу:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Действительно ли это правильно? На что я должен проверить?

6
задан 15 December 2009 в 21:31
поделиться

4 ответа

Я полагаю, что вы хотите результат будет в utf8

  • , сохраните php-скрипт в кодировке utf8
  • убедитесь, что ваш http-заголовок (или некоторые метатеги) сообщает, что вывод - utf8
  • , все таблицы в MySql должны быть последними в utf8
  • , но не в последнюю очередь, соединение между клиентом и сервером должно быть utf8. (Это можно сделать где-нибудь в настройке php.ini или выполнив следующий запрос к базе данных: SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'
4
ответ дан 8 December 2019 в 03:27
поделиться

Если только данные, поступающие из базы данных, содержат странные символы, убедитесь, что соединение MySQL также в UTF8, используя:

mysql_query("SET NAMES UTF8");

перед любыми другими запросами. В противном случае, если символы появляются также в «рукописных» файлах, убедитесь, что файлы сохранены в вашем редакторе как UTF-8. Вы также можете попробовать установить заголовок кодировки через PHP:

header('Content-type: text/html; charset=UTF-8');

Также убедитесь, что все поля в запрашиваемых таблицах настроены как некоторый вариант UTF-8, например utf8_general_ci .

20
ответ дан 8 December 2019 в 03:27
поделиться
1
ответ дан 8 December 2019 в 03:27
поделиться

В последний раз, когда у меня была такая проблема, решение было похоже на то, что сказал Тату Ульманен, но немного отличалось...

Так что если его решение не сработает, попробуйте заменить

mysql_query("SET NAMES UTF8");

на

mysql_query("SET NAMES latin1");

Я говорю это, потому что по умолчанию в MySql используется латинский1, и это то, что используется большую часть времени....

надеемся, что это поможет....

4
ответ дан 8 December 2019 в 03:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: