2015-02-26 2 views
1

В моей базе данных MySQL хранятся немецкие умляуты, такие как «ßäöü», которые кодируют utf-8.
Когда я получаю значение типа «Straße» из БД, выход «Stra e».
Когда я отображаю это значение с помощью utf8_decode (htmlentities()), выход полностью пуст "".
Мой заголовок html объявляет уже <meta charset="utf-8">.
Как решить эту проблему?UTF-8 Charset issue

ответ

0

Ваша база данных - utf-8. Какова ваша кодировка таблицы и столбца? Проверьте это с помощью phpmyadmin. Вывод htmlentities пуст, потому что вы не передаете ему строку utf-8, которая по умолчанию использует пустую строку из php 5.4+ (поверьте, что решение об устранении совместимости вызвало множество ошибок.)

+0

Таблица и столбцы также установлены в кодировку UTF-8. Не могли бы вы объяснить, почему я не передаю строку UTF-8? Может ли причина в том, что мой столбец установлен в UTF-8, но значение столбца содержит латинские символы, такие как «Straße»? – udgru

+0

Вы изменили это после ввода данных? Существует также параметр кодирования соединения mysql, хотя по умолчанию он должен быть UTF-8 с большинством веб-серверов. –

+0

Ofc может быть, что вы вставили в таблицу данные, отличные от UTF-8. В этом случае вам необходимо преобразовать кодировки или использовать http://php.net/manual/de/function.mb-detect-encoding.php для обнаружения и изменения кодировки вручную во время процесса вывода. –

0

Вы можете попробовать utf8_decode(), если вы используете PHP или любую аналогичную функцию на своем языке.

+0

Я обновил свой после. См. Выше. – udgru

Смежные вопросы