СоНоты

Наборы символов, кодировки и числовые ссылки на символы

Индексируя по-маленьку (см. Вершки Рунета), обратил внимание, что некоторые вебмастера, стараясь украсить страницы подопечных сайтов, используют нестандартные символы, указывая их, согласно рекомендации HTML4, в виде числовых ссылок на символы (nnn;).

Проблема заключается в том, что хотя в спецификации HTML4, явно указано:

Numeric character references specify the code position of a character in the document character set.

И хотя Википедия (по крайней мере английская) не делает различия между Character Set (набор символов) и Character Encoding (кодировка символов), для HTML (и XHTML, и XML), как подмножества SGML, это разные понятия. Поэтому использовать для числовых ссылок на символов кодовые значения символов из выбраной кодировки символов, как послупает большинство вебмастеров, вкорне не верно. Должны указываться коды символов в UNICODE, именно этот набор символов принят в SGML по-умолчанию.

Честно говоря, мне ни разу не встрачался документ в вебе, где явно указывался набор символов (отличный от UNICODE), но порывшись в Гугле, удалось отыскать пример такого объявления:


<!SGML "ISO 8879:1986"

CHARSET "... formal name for EBCDIC ..."
...
>
<!DOCTYPE book>
<book>
...

Кстати, в Tutorial: Character sets & encodings in XHTML, HTML and CSS на сайте W3C по этому поводу сказано более чётко:

NCRs, or Numeric Character References, and entities are ways of representing any Unicode character in XHTML / HTML using only ASCII characters.

...

One point worth special note is that values of numeric character references (such as &#x01F5; and &#501; for ǵ) are interpreted as Unicode characters - no matter what encoding you use for your document.