Какие символы кодирования нужно использовать а какие нет

Как известно, есть множество типов кодирования, которые принципиально отличаются друг от друга:

  • HTML-мнемоники или HTML-сущности (англ. HTML-entity) – самый распространённый тип кодирования специальных символов. Это кодирование специальных символов конкретно для HTML-разметки. Для таких мнемоник свойственно начинаться со знака амперсанда и заканчиваться точкой с запятой, а между ними идёт литерал в нижнем регистре, представляющий собой короткое или сокращённое название символа. Примеры:   – неразрывный пробел, " – левая двойная кавычка «ёлочка», — – длинное тире.
  • UTF-код (UTF-code) – тип кодирования, в котором указывается код символа с помощью десятичной или какой-либо др. системы счисления. Такие коды начинаются со знака амперсанда, после которого идёт решётка, и далее порядковый номер символа, после чего символ точки с запятой. Также код символа может быть записан в шестнадцатеричном виде – в этом случ. код начинается с обратного слэша, после которого идёт код символа в шестнадцатеричном формате записи. Примеры: — – длинное тире, " – левая двойная кавычка «ёлочка».

Есть и др. типы кодирования особых символов, я лишь привёл самые популярные.

Раньше мне казалось, что лучше всего кодировать все возможные символы, ведь не зря это кодирование придумали. Но оказалось всё иначе, куда правильней с логической точки зрения.

Поскольку подобными вопросами задаются многие верстальщики, то W3C дал офиц. ответ на эти вопросы в своей статье. Т.к. они явл. одной из офиц. организаций, которые отвечают за спецификацию HTML, то я думаю, лучше следовать их советам.

W3C выпустил офиц. ответ о том, когда использовать и когда не использовать мнемоники.

Если не развозить и сказать конкретно всю суть статьи W3C, то получается след.: «Вы должны заменять специальные символы их сущностями тогда, когда эти специальные символы используются как служебные в том языке разметки на котором вы пишите. Во всех остальных случаях использовать мнемоники не нужно и лучше писать символы как есть».

Т.е. всё зависит от типа разметки документа. Поскольку самой популярной в вебе разметкой документов является HTML, то нужно знать, какие у него спец. символы считаются служебными.

В HTML есть 3 символа, которые всегда должны быть в контенте как мнемоники, чтобы они не взаимодействовали с синтаксисом разметки. Они явл. частью языка для всех документов, основанных на XML, в т.ч. и для HTML.

Служебные в HTML символы:

  • < (&lt;) – левая угловая скобка, знак «меньше»
  • > (&gt;) – правая угловая скобка, знак «больше»
  • & (&amp;) – амперсанд

Их в контенте HTML документа всегда надо заменять мнемониками. Все остальные символы лучше использовать как есть без кодирования, если это так же позволяет сделать кодировка документа.

Не маловажную роль в данном вопросе играет кодировка документа. Почти всегда предпочтительнее использовать кодировку, которая позволяет представить символы в их нормальном виде, а не с помощью ссылок на символы или NCRs.

Т.е. ссылки на символы нужно использовать в контенте документа только, если эти символы явл. служебными для разметки документа или, если кодировка документа не позволяет указать их в нормальном виде.

Использовать ссылки символов везде и всюду не нужно! Их должно быть как можно меньше! Перед тем, как кодировать спец. символ в контенте (тексте) документа, 10 раз подумайте так ли это необходимо, и не делайте это, если в этом нет нужды. Использование ссылочных мнемоник (кодов символов) может сделать документ трудночитаемым и громоздким. Так же это затруднит поддерживание кода и может значительно увеличить размер файла.