Почему нужны элементы символов HTML? Какая польза? Я не вижу смысла.
Почему нужны элементы HTML-символов?
Ответ 1
Две основные вещи.
- Они позволяют использовать символы, которые не определены в текущей кодировке. Например, вы можете юридически использовать ASCII в качестве кодировки и по-прежнему включать произвольные юникодные символы.
- Они позволяют вам приводить символы, которые HTML дает особый смысл, как отметил Саймон.
Ответ 2
"1 < 2
" позволяет помещать на страницу 1 < 2
.
Длинный ответ:
Так как HTML использует '<
' для открытия тегов, вы не можете просто набрать '<
', если хотите, чтобы это было как текст. Поэтому у вас должен быть способ сказать "Я хочу текст <
на моей странице". Кто бы ни разрабатывал HTML (или, на самом деле, SGML, предшественник HTML), решил использовать "&
something ;
", поэтому вы также можете использовать такие вещи, как неразрывное пространство: "
" (пробелы, которые не свертываются или не разрешают разрыв строки). Конечно, теперь вам нужно сказать "&
", поэтому вы получите "&
"...
Ответ 3
Они не являются, кроме &
, <
, >
, "
и, вероятно,
. Для всех других символов просто используйте UTF-8.
Ответ 4
В SGML и XML они предназначены не только для символов. Они являются универсальным механизмом включения, и их использование для специальных символов является лишь одним из многих случаев.
<!ENTITY signature "<hr/><p>Regards, <i>&myname;</i></p>">
<!ENTITY myname "John Doe">
Подобные объекты не полезны для веб-сайтов, потому что они работают только в режиме XML, и вы не можете использовать внешний DTD файл без включения "проверки" режима синтаксического анализа в конфигурации браузера.
Сущности могут быть расширены рекурсивно. Это позволяет использовать XML для атаки Denial of Serice под названием "Billion Laughs Attack".
Firefox использует сущности внутри (в XUL и т.д.) для интернационализации и независимых от бренда сообщений (чтобы облегчить жизнь Flock и IceWeasel):
<!ENTITY hidemac.label "Hide &brandShortName;">
<!ENTITY hidewin.label "Hide - &brandShortName;">
В HTML вам просто нужны <
, &
и "
, чтобы избежать неоднозначностей между текстом и разметкой.
Все остальные объекты в основном устаревают кодировками Юникода и остаются только как ковенант (но хороший текстовый редактор должен иметь макросы/фрагменты, которые могут их заменить).
В XHTML все объекты, кроме базовых, являются проблематичными, потому что не будут работать с автономными синтаксическими анализаторами XML (например,
не будет работать).
Чтобы проанализировать все сущности XHTML, вам нужно проверить XML-парсер (обычно называемый "разрешать внешние" ), который медленнее и нуждается в создании каталога DTD. Если вы проигнорируете или испортите свой каталог DTD, вы будете участвовать в DDoS из серверов W3C.
Ответ 5
Символьные сущности используются для представления символа, зарезервированного для написания HTML for.ex. <, > ,/и т.д., если вы хотите представить эти символы в своем контенте, вы должны использовать символьные сущности, это поможет синтаксическому анализатору различать контент и разметку
Ответ 6
Вы используете сущности, чтобы помочь синтаксическому анализатору различать, когда символ должен быть представлен как HTML, и то, что вы действительно хотите показать пользователю, поскольку HTML зарезервирует для себя специальный набор символов.
Вводя это буквально в HTML
Я не имею в виду это как </sarcasm>
вызовет "</sarcasm> " тег исчезнет,
например.
Я не имею в виду это
поскольку HTML не имеет тега, определенного как такового. В этом случае использование объектов позволит корректно отображать текст.
например.
Нет, действительно! & Амп; л;/сарказм & GT;
дает
Нет, действительно! </сарказм >
по желанию.