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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Поделиться!
Tags: , , , ,

49.68MB | MySQL:52 | 0,275sec