Проблема с заголовком http, указывающим кодировку символов iso-8859-1, а не utf-8? - PullRequest
1 голос
/ 05 января 2011

Недавно я разработал веб-сайт, содержащий немецкие и голландские символы, и я хотел бы, чтобы на странице использовалась кодировка символов utf-8.

Я добавил объявление xml:

<?xml version="1.0" encoding="UTF-8"?>

и метатег:

<meta http-equiv="content-type" content="text/html; charset=UTF-8" />

Когда я просматривал веб-сайт в Интернете, специальные символы, найденные в немецком тексте, отображались неправильно.Когда я попытался проверить страницу с помощью валидатора w3c, я получил следующее предупреждение:

Кодировка символов, указанная в заголовке HTTP (iso-8859-1), отличается от значения в объявлении XML(UTF-8).Я буду использовать значение из заголовка HTTP (iso-8859-1).

Это проблема с сервером?Просто я загрузил одни и те же файлы на другой мой сервер, и там правильно отображаются страницы, используя utf-8.

Любая помощь или совет относительно того, как мне поступить, чтобы заставить страницу кодироваться как utf-8 будет принята с благодарностью.

Я в тупике!


Благодаря Джейсону я нашел файл с именем mod_mime-defaults.conf

, этот файл содержит следующее:

# AddDefaultCharset UTF-8
AddDefaultCharset ISO-8859-1

Если я удаляю # перед AddDefaultCharset UTF-8, как вы думаете, это поможет?Или, возможно, добавьте # перед AddDefaultCharset ISO-8859-1.

Я пытался редактировать этот файл, но я не думаю, что у меня есть разрешение.Ммм ...

Ответы [ 3 ]

3 голосов
/ 05 января 2011

Это может быть проблема с сервером.

Если вы используете Apache, проверьте конфигурационный файл Apache, который обычно находится здесь /etc/httpd/conf/httpd.conf на * nix-сервере, для значения AddDefaultCharset.

Этот параметр определяет значение по умолчанию для всего обслуживаемого контента. Если он закомментирован, это означает, что он будет полагаться на настройки браузера или META для определения Charset.

0 голосов
/ 23 февраля 2017

Я изменил кодировку = UTF-8 на кодировку = iso-8859-1, и предупреждение исчезло.

0 голосов
/ 05 января 2011

Метатег HTML не совпадает с заголовком ответа HTTP. Вам необходимо установить кодировку символов в заголовке ответа HTTP. Что касается истории ваших вопросов, вы используете PHP - или, по крайней мере, знакомы с ним - вот вам пример того, как это сделать, нацеленный на PHP.

Поместите следующую строку в файл PHP перед , вы получите любой символ.

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

Смотри также:


Не имеет отношения к проблеме: вы не должны помещать объявление XML на страницу HTML . Это рецепт для другого рода неприятностей.

...