Это - вообще только проблема при передаче ввода данных пользователем оценки.
На самом деле существует разница между HTML и XHTML. Поскольку XHTML - это XML, применяются правила для идентификаторов XML:
Значения типа ID ДОЛЖНЫ соответствовать продукту Name.
NameStartChar :: = ":" | [AZ] | "_" | [az] | [# xC0- # xD6] | [# xD8- # xF6] | [# xF8- # x2FF] | [# x370- # x37D] | [# x37F- # x1FFF] | [# x200C- # x200D] | [# x2070- # x218F] | [# x2C00- # x2FEF] | [# x3001- # xD7FF] | [# xF900- # xFDCF] | [# xFDF0- # xFFFD] | [# x10000- # xEFFFF] NameChar :: = NameStartChar | "-" | "." | [0-9] | # xB7 | [# x0300- # x036F] | [# x203F- # x2040]
Источник: Extensible Markup Language (XML) 1.0 (пятое издание) 2.3
Для HTML применяется следующее:
id = name [CS]
Этот атрибут присваивает имя элементу. Это имя должно быть уникальным в документе.токены ID и NAME должны начинаться с символа буква ([A-Za-z]) и может следовать на любое количество букв, цифр ([0-9]), дефисы ("-"), символы подчеркивания ("_"), двоеточия (":") и точки (".").
Источник: Спецификация HTML 4, глава 6, идентификатор идентификатора
Спецификация W3C Основные типы данных HTML гласит "ID и NAME токены должны начинаться с буквы ([A-Za-z]) и могут сопровождаться любым количеством букв, цифр ([0-9]), дефисами ("-"), подчеркиванием (" _
"), двоеточия (": ") и точки (". ")."
Если мы понимаем название вашего вопроса буквально, то правила HTML и XHTML не применяются. Вместо этого соответствующая спецификация - это DOM.
Если взять DOM уровня 3 в качестве источника и предположить, что под «DOM ID» вы подразумеваете атрибут с установленным флагом «ID», тогда значение будет «DOMString», символы которого могут быть любыми UTF-16. кодируемый символ.
16-битная единица
Базовая единица DOMString. Это указывает на то, что индексация на DOMString происходит в единицах по 16 бит. Это должно не следует понимать неправильно, чтобы означать, что DOMString может хранить произвольные 16-битные единицы. DOMString - это символ строка в кодировке UTF-16; это означает что ограничения UTF-16 как а также другие соответствующие ограничения на символьные строки должны поддерживаться. Один символ, для пример в виде числового ссылка на символ, может соответствовать один или два 16-битных модуля.
Конечно, это, вероятно, не то, что вам нужно, и этот ответ Людвига Вайнциерля - это то, что вы искали. Однако разумно понимать, что не все модели DOM могут быть сериализованы как HTML или XHTML и что DOM имеет собственный набор правил.
Согласно спецификациям HTML 4.0
токены ID и NAME должны начинаться с буквы ([A-Za-z] ), за которым может следовать любое количество букв, цифр ([0-9]), дефисов ("-"), подчеркиваний ("_"), двоеточий (":") и точек (".").
Для правильного html или xhtml Филипп прав. Никаких пробелов или специальных символов (конечно, тех, которые не требуют экранирования) для атрибутов id. Всего 52 символа алфавита, прописные и строчные буквы, цифры 0–9, дефисы ("-"), подчеркивания ("_"), двоеточия (":") и точки (".")
{{1 }}