Не-ASCII символы в значениях атрибутов URI
Хотя URI не содержат не-ASCII значений (см. [URI], раздел 2.1), авторы иногда определяют не-ASCII значения в атрибутах, ожидаемых URI (т.е. определённых с %URI; в ОТД).
К примеру, данное значение href недопустимо:
<A href="http://foo.org/Håkon">...</A>
Мы рекомендуем, чтобы ПА соблюдали следующее соглашение по обработке не-ASCII символов:
- Представлять каждый символ в UTF-8 (см. [RFC2279]) как один или более байтов.
- Вводить эти байты с помощью Escape-механизма URI (т.е. конвертированием каждого байта в %HH, где HH - это 16-ричное изображение значения байта).
Результатом этой процедуры будет синтаксически допустимый URI (как определено в [RFC1738], раздел 2.2, или в [RFC2141], раздел 2), не зависящий от кодировки, в которой документ HTML, содержащий URI, может транскодироваться.
Примечание. Некоторые старые ПА упрощённо разбирают URI в HTML, используя байты кодировки полученного документа. Некоторые старые документы HTML придерживаются этой практики, и загрузка нарушается при транскодировании. ПА, которые обрабатывают такие старые документы, должны, при получении URI, содержащего символы за пределами допустимого набора, использовать соглашение, базирующееся на UTF-8. Только в том случае, если URI не разобран, они должны попытаться сконструировать URI на базе байтов кодировки полученного документа.Примечание. Такое же соглашение, базирующееся на UTF-8, должно применяться к значениям атрибута name элемента A.