Зная, что &
является значением сущности html & - как это делают валидаторы, такие как w3c? Даже когда я смотрю на исходный код, он уже разбирается в правильном значении.Как валидаторы различают «&» и «& amp»?
ответ
Ваш вопрос основан на ложном посылке - как отметил Co_42, &
не является «значением ASCII» '&'
. Это HTML character reference, представляющий символ '&'
. Значение ASCII '&'
: 38
(или 0x26
).
Исходный код почти наверняка состоит из текстовых файлов ASCII или Unicode. Те не используют объекты HTML. Если у вас есть строка с амперсандом, хранящаяся в исходном коде, она, вероятно, будет храниться с голосом "&"
. Если есть литерал строки где-то содержащий фактические данные HTML, он может содержать "&"
.
Когда вы используете какой-либо инструмент или функцию для преобразования строк в текст, готовый к отправке в HTML или XML-документ, любой "&"
будет (должен быть!) Преобразован в "&"
.
Когда программа, которая читает HTML-документы, встречает ASCII "&"
, она может предположить, что это начало ссылки на символ HTML. Это нормально, потому что все амперсанды в фактическом тексте должны были быть преобразованы в "&"
.
Как несколько извращенной Например, если вы открываете исходный код в текстовом редакторе и сохраните его как HTML-документ, вы увидите, что в самом файле, "&"
был преобразован в "&"
(и "&"
был преобразован в "&"
). Если вы затем откройте этот документ в браузере, вы увидите, что амперсанды отображаются так же, как и при просмотре исходного кода в текстовом редакторе. Шаг кодирования, который произошел при сохранении документа HTML, соответствует шагу декодирования, которое происходит, когда браузер отображает его.
Если вы положили что-то вроде "Fish & chips"
непосредственно в фактический HTML-документ, ваш HTML-документ будет недействительным. Усложнением является тот факт, что программы, такие как браузеры, как правило, пытаются восстановить из ошибок в документе и в любом случае отобразить документы. Таким образом, ваш браузер может по-прежнему отображать "Fish & chips"
на экране при открытии недействительного документа. Однако программа, такая как валидатор W3C, которая специально предназначена для обнаружения ошибок в документах HTML, уведомит вас о том, что ваш документ недействителен.
- 1. Валидаторы FluentValidation и простой инжектор, где валидаторы, введенные как массив
- 2. Различают строки и [Char]
- 3. кнопка и валидаторы
- 4. Django модели и валидаторы
- 5. Использование & amp; amp; amp; amp; в строках запроса
- 6. Почему это и преобразовывается в & amp?
- 7. Различают отрицательные и положительные числа?
- 8. почему & становится & amp: amp; и как решить это в XML?
- 9. Как работать валидаторы диапазона?
- 10. Как назначить валидаторы кнопке
- 11. Как браузеры различают сценарии ES5 и ES6?
- 12. PHP replace & with & не & amp;
- 13. Как валидаторы рефакторинга
- 14. Различают между 4.0.3 и 4.0.4
- 15. Is & amp; valid
- 16. Валидаторы и проблема ClientIDMode (ASP.NET)
- 17. различают 0 & ""
- 18. Фильтры и валидаторы добавляются дважды
- 19. Страницы AMP и контент Несоответствие между AMP и каноническими страницами
- 20. asp.net UpdatePanel и валидаторы проблема
- 21. Как создать код AMP vxworks NortelCpl AMP?
- 22. Regex: заменить & и,. :/- _
- 23. Java-валидаторы?
- 24. Валидаторы ASP.NET
- 25. Отображение и вместо &
- 26. php file_get_contents и &
- 27. Почему и стать &
- 28. jQuery html() и &
- 29. (LMX) AMP и Laravel
- 30. различают MSYS и MSYS2 и CYGWIN
Это не значение ascii, это объект html. –
@ Co_42 Думаю, я не знаю разницы между двумя. < –