UTF-8 французский акцентированный выпуск символов
Когда я вижу данные как хранящиеся в базе данных mysql с использованием phpmyadmin, символы сохраняются точно так же, как и при использовании php для отображения этих данных в html-документе, который имеет точно следующую структуру:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
</head>
<body>
</body>
</html>
Я получил квадрат вместо акцентированного символа, однако, у меня нет этой проблемы с акцентными символами на статическом контенте, которые не были загружены из mysql на той же странице.
когда я вижу в исходном коде страницы, они кажутся идентичными! например:
Часть статических данных в исходном коде отображается как:
éçà
часть данных происхождения mysql:
éçà
я пытался заменить
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
с
<meta http-equiv="Content-Type" content="text/html; charset=windows-1552" />
и в результате я получил MySQL один фиксированный, статический с квадратами!
какие-нибудь намеки?
2 ответа
Это довольно распространенная проблема с набором символов, вам необходимо вручную установить кодировку соединения для соединения MySQL (это должны быть первые запросы, которые вы выполняете после установления соединения):
SET NAMES utf8;
SET CHARACTER SET utf8;
А также убедитесь, что на каждом столе есть CHARACTER SET
установлен в UTF-8
,
Или вы также можете обновить конфигурацию сервера.
Похоже, проблема неправильной конфигурации. Скорее всего, ваша БД или драйверы не используют UTF-8.
Тот факт, что данные, которые поступают из БД, показывает ОК, когда вы переходите на windows-1552
и статические файлы не могут означать, что ваш исходный файл (правильно) находится в UTF-8, но данные из вашей БД поступают в неправильном формате кодировки.
Что бы ни происходило, придерживайтесь UTF-8.
ОБНОВЛЕНИЕ: есть поток, который объясняет, как автоматически установить кодировку для соединения:
Изменить набор символов MySQL по умолчанию на UTF-8 в my.cnf?