Спецификация HTML 4.01 говорит о шестнадцатеричных ссылках на символы
Числовые ссылки на символы указывают позицию кода символа в наборе символов документа.
Так, если кодировка набора символов документа - UTF-8, числовые ссылки должны указывать кодовую точку Unicode.
В спецификации HTML5 говорится о шестнадцатеричных ссылках на символы
За амперсандом должен следовать символ ЗНАКА НОМЕРА U + 0023 (#), за которым должен следовать символ МАЛОГО ПИСЬМА U + 0078 X (x) или Символ X ПИСЬМА ЛАТИНСКОЙ БУКВЫ U + 0058 (X), за которым должны следовать одна или несколько цифр в диапазоне от U + 0030 ЦИФРОВОЙ НОЛЬ (0) до U + 0039 ЦИФРОВАЯ ДЕВЯТЬ (9), U + 0061 МАЛЕНЬКОЕ ПИСЬМО А до U + 0066 МАЛЕНЬКОЕ ПИСЬМО F иU + 0041 LATIN CAPITAL LETTER A - U + 0046 LATIN CAPITAL LETTER F, представляющий целое число из шестнадцати базовых чисел, которое соответствует кодовой точке Unicode, разрешенной в соответствии с приведенным ниже определением.Затем за цифрами должен следовать символ SEMICOLON U + 003B (;).
В наборе символов документа не упоминается, и он просто говорит, что числовое значение идентифицирует кодовую точку Unicode.
Но, похоже, что все современные браузеры (я не тестировал старые) обрабатывают € - Ÿ, как если бы они ссылались на Windows-1252
Например, € отображает €
,но U + 0080 не является кодовой точкой для €
, U + 20AC есть.И кодовая точка Unicode для U + 0080 определяется как PAD
€, также (правильно) отображает €
.
Является ли это просто прагматичным поведением браузерами или есть оправдание вспецификация, которую я пропускаю?
[Обратите внимание, что десятичные ссылки на символы имеют такое же поведение.Я только что использовал шестнадцатеричные для ясности и последовательности.]