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?

Другие вопросы по тегам