2012-05-10 5 views
1

Я делаю небольшой веб-сайт с немецким и французским контентом. Некоторые из документов отображают текст правильно, хотя все умляуты написаны как äöü, а не с кодами. Другим документам нужны коды, но я не могу найти разницу между документами.Почему некоторые HTML-документы отображают специальные символы, написанные явно (например, как ä) без необходимости в кодах (например, ä)

При попытке Google найти ответ, я могу найти только множество ссылок на код, но не объясню, почему некоторые документы им не нужны.

ответ

3

Любой HTML-документ (или любой текстовый документ, если на то пошло) является закодирован для определенной кодировки - это сопоставление между символами и значениями, представляющими их. Различные кодировки означают разные символы.

Многие страницы используют кодировку Юникода UTF-8, и они указываются либо в заголовке HTTP, либо в метатеге (Content-Type) на самой странице - такие страницы могут использовать большинство символов напрямую.

Вы должны прочитать The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!).

+0

Вот две страницы, [одна] (http://rebbergleist.ch/subpages/advent.html), способная отображать специальный e напрямую и [один] (http://rebbergleist.ch/subpages/nordicwalking .html). В настройках, которые они используют, нет различий. –

+0

@Coloneljesus - Ни один из них не является _pages_. Это фрагменты HTML. И, глядя на страницу _source_, они отображаются точно. – Oded

+0

Глядя на источник, я понял, что проблема не в моем коде, а в кодировке файла. Оказывается, что параметр кодировки в Notepad ++ отличается. Преобразован в UTF-8, и теперь он работает. Благодаря! –

0

1) charset-декларация в html-коде (meta) 2) кодировка ваших документов. Например, если вы работаете с UTF-8 и есть один документ (например, js-файл) в ISO 8859-1, то некоторые браузеры покажут вам сайт в ISO 8859-1, который уничтожит ваш äöüß ...

+0

размещены примеры выше. Очень простые файлы. Просто текст, ссылка css и одна ссылка mailto. –

+0

2) похоже, решение, спасибо! –

0

Потому что, за the HTML specification:

средства разработки (например, текстовые редакторы) могут кодировать HTML-документы в кодировке по своему выбору

Некоторые документы используют кодировку (таких как iso-8859-1, или Windows-1252, или utf-8), который может представлять символ ä напрямую; другие используют кодировку (например, us-ascii), которая не может и, следовательно, должна использовать ссылку на объект символа ä.