Чтобы быть совместимым с XHTML (и XML в целом), то ampersandдолжен быть экранированы. Для этого требуется использование SGML/XML entity.
Есть три разных сущности, которые могут быть использованы для представления амперсанда:
именованного объект: &
(Это один из пяти predefined entities, определенных в спецификации XML.)
Десятичный numeric character reference: &
Hexadecimal numeric character reference: &
Таким образом, стоимость вашего примера href
атрибута может быть представлена в одном из этих трех способов:
href="index.php?c=tutorials&p=cat&cid=1"
href="index.php?c=tutorials&p=cat&cid=1"
href="index.php?c=tutorials&p=cat&cid=1"
Курс е, это было бы справедливо смешивать вышеуказанные объекты, как это:
href="index.php?c=tutorials&p=cat&cid=1"
^^^^^ ^^^^^
... но большинство утверждают, что для принятия согласованного подхода на протяжении всего документа (и даже всего веб-сайта).
Из трех объектов, которые могут использоваться для представления амперсанда, я считаю, что &
используется чаще всего в XHTML.
Конечная нота: Один из вышеуказанных лиц должны также использоваться при авторизации HTML, однако browsers today do not require that the ampersand be escaped.
** Связанный: ** * (Тот же вопрос, помеченный как «HTML») * [Я кодирую амперсанды в ?] (Http://stackoverflow.com/q/3705591/1497596) – DavidRR
@DavidRR Не то же самое вопрос ... подобный, но другой вопрос. Он спрашивает, следует ли кодировать амперсанды. Я спрашиваю, почему это неправильно в валидаторе (не знал об амперсанде и кодировании, поэтому я не знал, что мне нужно что-то искать в кодировке). – kravemir