Это меня какое-то время сбивает с толку. С появлением UTF-8 в качестве стандарта де-факто в веб-разработке я не уверен, в каких ситуациях я должен использовать объекты HTML, а для каких - просто использовать символ UTF-8. Например,
- длинное тире (-,
&emdash;
) - амперсанд (&,
&
) - 3/4 дроби (¾,
¾
)
Пожалуйста, пролейте свет на эту проблему. Это будет оценено.
html
xhtml
html-entities
allesklar
источник
источник
Ответы:
Обычно вам не нужно использовать сущности символов HTML, если ваш редактор поддерживает Unicode. Сущности могут быть полезны, когда:
код более четкий, чем соответствующий символ пробела.<
,&
или"
.источник
вместо фактического символа пробела, отчасти потому, что Firefox конвертирует U + 00A0 в U + 0020 в формах. Таким образом, использование объекта в этом случае - единственный способ гарантировать, что источник не будет испорчен каждый раз, когда пользователь Firefox редактирует его.<
часто нужно экранировать, никогда>
(и"
нужно экранировать лишь изредка внутри значений атрибутов).&
что всегда следует использовать вместо&
? Для этого есть причина?Основываясь на полученных мной комментариях, я рассмотрел это немного дальше. Кажется, что в настоящее время лучше всего отказаться от использования сущностей HTML и вместо этого использовать фактический символ UTF-8 . Перечислены следующие причины:
Если кодировка вашей страницы правильно настроена на UTF-8, вы должны использовать фактический символ вместо объекта HTML. Я прочитал несколько документов по этой теме, но наиболее полезными были:
Из статьи UTF-8: The Secret of Character Encoding :
В этой статье также приводится хороший пример китайской кодировки. Вот сокращенный пример ради лени:
UTF-8:
這兩個字是甚麼意思
HTML-объекты :
這兩個字是甚麼意思
Кодировки объектов UTF-8 и HTML для меня бессмысленны, но, по крайней мере, кодировка UTF-8 распознается как иностранный язык , и она будет правильно отображаться в поле редактирования. В статье говорится следующее о версии с кодировкой объектов HTML:
Как отмечали другие, вам все равно придется использовать объекты HTML для зарезервированных символов XML (амперсанд, меньше, больше).
источник
&entity;
синтаксиса в документе HTML с объявленной кодировкой UTF-8, правильно? Хотя простые символы UTF-8 лучше по причинам, которые вы указали, нет проблем с тем, чтобы рядом с ними в одном документе были некоторые объекты HTML?Я бы не стал использовать UTF-8 для символов, которые легко спутать визуально. Например, трудно отличить эмдаш от минуса или, особенно, неразрывный пробел от пробела. Для этих персонажей обязательно используйте сущности.
Для символов, которые легко понять визуально (например, китайские примеры выше), используйте UTF-8, если хотите.
источник
Лично я уже давно все делаю в utf-8, однако на html-странице вам всегда нужно преобразовывать амперсанды (&), символы больше (>) и меньше (<) в их эквивалентные сущности, & amp ;, & Gt; и & lt;
Кроме того, если вы собираетесь программировать с использованием текста UTF-8, есть несколько вещей, на которые следует обратить внимание.
источник
Сущности могут купить вам некоторую совместимость с мертвыми клиентами, которые неправильно понимают кодировки. Я не верю, что это касается каких-либо текущих браузеров, но вы никогда не знаете, какие еще программы могут вас заинтересовать.
Однако более полезным является то, что объекты HTML защищают вас от ваших собственных ошибок: если вы неправильно сконфигурируете что-то на сервере и в конечном итоге обслуживаете страницу с HTTP-заголовком, который говорит это,
ISO-8859-1
иMETA
тегом, который говорит этоUTF-8
, по крайней мере, ваши & mdash; es всегда будет работать.источник
&mdash
отображается правильно, даже если заголовки неправильно настроены, затрудняет обнаружение проблемы.Сущности HTML полезны, когда вы хотите сгенерировать контент, который будет включаться (динамически) в страницы с (несколькими) разными кодировками. Например, у нас есть контент с белой этикеткой, который включен как в веб-страницы в кодировке ISO-8859-1, так и в UTF-8 ...
Если преобразование набора символов из / в UTF-8 не было таким большим ненадежным беспорядком (вы всегда натыкаетесь на некоторые символы и некоторые инструменты, которые не конвертируются должным образом), стандартизация UTF-8 была бы правильным решением.
источник
Если ваши страницы правильно закодированы в utf-8, вам не нужны объекты html, просто используйте нужные символы напрямую.
источник
Для меня все предыдущие ответы имеют смысл.
Вдобавок: это в основном зависит от редактора, который вы собираетесь использовать, и языка документа. Минимальное требование к редактору - поддержка языка документа. Это означает, что если ваш текст на японском языке, остерегайтесь использования редактора, который не отображает их (то есть никаких сущностей для самого документа). Если это английский, вы даже можете использовать старый vim-подобный редактор и использовать сущности только для относительной редкости & copy; и друзья. Конечно: & gt; for> и другим специальным HTML-элементам по-прежнему нужны escape-символы. Но даже с другими языками latin-1 (немецким, французским и т. Д.) Писать ä - это боль, вы знаете где ...
Кроме того, я лично пишу объекты для невидимых символов и тех, которые похожи на стандартные символы ascii и поэтому их легко спутать. Например, u1173 (в некоторых наборах символов выглядит как тире) или u1175, который выглядит как вертикальная черта. В любом случае я бы использовал сущности для них.
источник