Случайная проблема с кодировкой символов в wordpress utf8 - только для Opera - PullRequest
1 голос
/ 03 декабря 2011

У меня странная проблема с кодировкой символов на некоторых страницах, которые на самом деле не являются частью wordpress, но загружают их и получают свои данные из базы данных WP.Я получаю странные символы, такие как «Äƒ».

Wordpress v3.2, контент новый, не перенесен из старой версии WP.Кодировка базы данных - UTF8, сортировка - utf8_general_ci.Мой конфигурационный файл имеет определение ('DB_CHARSET', 'utf8');и определить ('DB_COLLATE', 'utf8_general_ci');Мои php-файлы закодированы как UTF8 без спецификации.

Еще более странно то, что иногда на этой странице это выглядит так же хорошо: http://ro.c4studio.ro/,, но после перезагрузки страницы (может потребоваться более одной перезагрузки)это идет плохо.Это почти никогда не верно на этой странице: http://ro.c4studio.ro/contact/ (иногда отображается нормально).

Также это происходит только в Opera (последняя версия)?Пробовал также удалить кеш ...

Не понял?почему это иногда работает, а иногда нет?

Забавно, не правда ли: -)

Ответы [ 2 ]

3 голосов
/ 05 декабря 2011

Opera явно делает неверное предположение о кодировке какого-либо файла, составляющего сайт, она угадывает (альтернативно настроена на использование или использует) iso-8859-1, когда контент на самом деле является UTF-8.

Прежде всего убедитесь, что для «Вид> Кодировка» установлено автоматическое обнаружение.

Чтобы действительно разобраться в проблеме, вам нужно выяснить, для чего URL Opera делает неправильное предположение. Как именно доставляются данные - непосредственно внутри разметки или в каком-либо внешнем канале (например, сценарий JSONP SCRIPT или RSS)? (На самом деле я не вижу никаких проблем на сайте, поэтому не могу сказать отсюда). Затем убедитесь, что этот URL-адрес отправляется с правильным заголовком HTTP-типа , например, для HTML-страницы это должно быть

    Content-Type: text/html;charset=utf-8
2 голосов
/ 04 декабря 2011

Изучая исходный код страницы, выясняется, что вы используете более новый способ указания кодировки в HTML5:

<meta charset="UTF-8" />

Я бы попробовал использовать текущий способ, чтобы убедиться, что это решает проблему:

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