Будет ли iso-8859-1 отображать немецкие умлауты нормально или мне нужно использовать utf-8? - PullRequest
4 голосов
/ 06 января 2011

У меня есть многоязычный веб-сайт, который размещен на сервере, для которого по умолчанию для кодировки символов установлено значение iso-8859-1.

Я подумал, что лучше всего иметь страницы utf-8 и добавить метатег, чтобы объявить это. К сожалению, этот метатег кажется переопределенным, и страница по умолчанию iso-8859.

Многие специальные символы на страницах на немецком и голландском языках отображаются неправильно.

Нужно ли пытаться изменить сервер по умолчанию на utf-8 или что-то еще? Может быть, я мог бы удалить сервер по умолчанию полностью? Хм ... действительно не уверен, что лучше здесь делать.

Любой совет был бы великолепен!

Ответы [ 3 ]

6 голосов
/ 06 января 2011

Метатеги HTML для типа контента не используются, когда HTML-страница обслуживается по HTTP.Вместо этого будет использоваться заголовок типа содержимого в ответе HTTP.Вы можете определить заголовок типа контента с помощью, например, Firebug на панели Net .

alt text

Как это изменить, зависит отязык программирования и / или веб-сервер, который вы используете, что неясно из вашего текущего вопроса.Что касается истории вопроса, вы, похоже, используете PHP.В этом случае вам нужно добавить следующую строку в файл PHP: до вы отправляете в ответ любой символ.

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

См. Также:


Если вы не можете изменить заголовок ответа HTTP, вам нужно дать более подробную информацию о языке программирования и веб-сервере, которыйвы используетеТаким образом, мы можем дать вам более подходящие ответы.

Если вы хотите придерживаться ISO-8859-1, то вам нужно убедиться, что ваши страницы сохраняются как ISO-8859-1, а не как UTF-8.В противном случае некоторые символы могут действительно иметь значение mojibake при отображении сохраненного ресурса UTF-8 как ISO-8859-1.

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

Существует несколько возможных решений, но самым чистым решением было бы правильно объявить кодировку вашего символа.

При обслуживании веб-страниц с HTTP-сервера кодировка обычно не предоставляется мета-тегамиHTML-файл, но по заголовку Content-type HTTP.

Веб-сервер, вероятно, отправляет что-то вроде Content-type: text/html; charset=ISO-8859-1, и вам необходимо это изменить.

Как это сделать, зависит от веб-сервера.

В качестве дополнения: Да, iso-8859-1 подходит для немецкого языка;это будет работать для всех западноевропейских языков.Однако в нем отсутствует несколько символов, в частности знак евро (то есть в iso-8859-15).Но лучше использовать UTF-8, поскольку он охватывает практически все языки.

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

Вы можете увидеть поддерживаемые символы и языки, которые должны освещаться в этой статье Википедии . В соответствии с этим, немецкий полностью поддерживается, а голландский - почти.

Это не просто вопрос выбора правильной кодировки символов, вы также должны сохранять страницы, используя эту кодировку. Если вы сохраните страницу как ISO-8859-1 и используете тип контента, который говорит, что это UTF-8, то она будет неправильно декодирована браузером. И ISO-8859-1, и Unicode поддерживают необходимые вам символы, но вы должны убедиться, что тип содержимого соответствует тому, как на самом деле сохраняются страницы.

...