UTF8 проблемы при использовании MySQL - PullRequest
0 голосов
/ 12 ноября 2011

Я знаю, что об этом спрашивали раньше.Но я исчерпал варианты, приведенные в ответах, которые я могу найти, поэтому я спрошу еще раз и, надеюсь, что-то упустил из виду.

Прежде всего, мои файлы имеют кодировку UTF8 и мой заголовок XML (яя использую XHTML) объявляет страницу UTF8.

Во-вторых, первое, что я делаю после подключения к базе данных, отправляю запрос "SET NAMES utf8".

Я также выполнил этооператор: "SHOW VARIABLES LIKE 'character_set%'" и установил все эти переменные в utf8.

Я выполнил команду SHOW CREATE TABLE table_name для каждой задействованной таблицы, и я убедился, что их набор символов - utf8.

Когда я смотрю на значения в базе данных, это выглядит как кодировка UTF8 с кодами, начинающимися с &.Это не правильно, я не знаю, почему они хранятся так.Я попытался отобразить их на своей странице с помощью PHP utf8_decode, но это не сработало.

Что еще я могу сделать?

(Если моя проблема не ясна из названия, символы такиекак ä å и ö не отображаются должным образом в браузерах.)

Ответы [ 3 ]

1 голос
/ 21 ноября 2011

OK. Как было предложено, это была проблема PHP, и она возникла из-за моего неправильного использования htmlentities вместо htmlspecialchars. Будьте осторожны при использовании этих функций и символов utf8! htmlspecialchars - это тот, который вам, вероятно, нужен.

0 голосов
/ 13 ноября 2011

Когда вы вставляете материал в базу данных, запускайте его через utf8_decode(), а когда вы выводите результат из базы данных, запускайте его через utf8_encode().

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

0 голосов
/ 13 ноября 2011

Вы пробовали

header('Content-Type: text/html; charset=utf-8');?

...