Когда следует использовать HTML-объекты



это сбивало меня с толку в течение некоторого времени. С появлением UTF-8 в качестве де-факто стандарта в веб-разработке я не уверен, в каких ситуациях я должен использовать HTML-объекты и для каких из них я должен просто использовать символ UTF-8.



примеры: ЭМ тире, амперсанд и др.



пожалуйста, пролей свет на этот вопрос. Это будет оценено по достоинству.

570   8  

8 ответов:

обычно вам не нужно использовать объекты символов HTML, если ваш редактор поддерживает Unicode. Сущности могут быть полезны при:

  • ваша клавиатура не поддерживает символ, который вам нужно ввести. Например, многие клавиатуры не имеют длинное тире или знак копирайта.
  • ваш редактор не поддерживает Unicode (очень распространенный несколько лет назад, но, вероятно, не сегодня).
  • вы хотите сделать его явным в источнике, что происходит. Например,   код яснее, чем соответствующий символ пробела.
  • вам нужно избежать специальных символов HTML, таких как <,& или ".

основываясь на комментариях, которые я получил, я рассмотрел это немного дальше. Кажется, что в настоящее время лучше всего отказаться от использования HTML-объектов и использовать фактический символ UTF-8 вместо. Причины перечислены ниже:

  1. кодировки UTF-8 легче читать и редактировать для тех, кто понимает, что означает символ и знает, как его вводить.
  2. кодировки UTF-8 так же непонятны, как и кодировки объектов HTML для тех, кто не понимаю их, но они имеют преимущество рендеринга в виде специальных символов, а не трудно понять десятичные или шестнадцатеричные кодировки.

Если кодировка вашей страницы правильно установлена в UTF-8, вы должны использовать фактический символ вместо сущности HTML. Я прочитал несколько документов по этой теме, но самыми полезными были:

С UTF-8: секрет кодировки символов статьи:

Википедия является отличным примером для исследования приложение, которое первоначально использовалось ISO-8859-1 но переключенный к UTF-8 когда это стало слишком громоздким, чтобы поддерживать международные языки. боты теперь будут на самом деле пройдите статьи и преобразование символьных сущностей в их соответствующие реальные символы для ради удобства пользования и возможность поиска.

эта статья также дает хороший пример с участием китайских кодирования. Вот сокращенный пример ради лени:

UTF-8:

這兩個字是甚麼意思

HTML Entities:

&#36889;&#20841;&#20491;&#23383;&#26159;&#29978;&#40636;&#24847;&#24605;

кодировки сущностей UTF-8 и HTML для меня бессмысленны, но по крайней мере кодировка UTF-8 распознается как иностранный язык, и он будет правильно отображаются в окне редактирования. Далее в статье говорится следующее о версии с кодировкой сущности HTML:

крайне неудобно для тех из нас кто вообще знает какой персонаж сущности, совершенно непонятные для бедных пользователей, которые этого не делают! Даже немного более удобный для пользователя, "понятные" сущности характера, такие как θ оставит пользователей, которые не заинтересован в изучении HTML почесывают в затылке. С другой рука, если они видят θ в правке коробка, они будут знать, что это особый характер, и относиться к нему соответственно, даже если они не умеют писать вот и сами характеры.

Как отмечали другие, вам все равно придется использовать HTML-объекты для зарезервированных символов XML (амперсанд, меньше, больше).

Я бы не использовал UTF-8 для символов, которые легко запутать визуально. Например, трудно отличить emdash с минусом, или особенно неразрывный пробел с пробел. Для этих символов обязательно используйте сущности.

для символов, которые легко понять визуально (например, китайские примеры выше), идти вперед и использовать UTF-8, Если вам нравится.

лично я делаю все в utf-8 С давних пор, однако, на html-странице вам всегда нужно конвертировать амперсанды (&), больше (>) и меньше ( и

кроме того, если вы собираетесь делать некоторые программы с использованием текста utf-8, есть несколько вещей, чтобы наблюдать.

  • XML нуждается в некоторых дополнительных строках для проверки при использовании сущностей.
  • некоторые библиотеки не играют хорошо с utf-8. Для например, PHP в некоторых дистрибутивах Linux отказался от полной поддержки utf-8 в своих библиотеках регулярных выражений.
  • трудно ограничить количество символов в тексте, который использует HTML-объекты, потому что один объект использует много символов. Также всегда есть риск разрезать объект пополам.

сущности могут купить вам некоторую совместимость с клиентами с мертвым мозгом, которые не понимают кодировки правильно. Я не верю, что это включает в себя какие-либо текущие браузеры, но вы никогда не знаете, какие другие виды программ могут ударить вас.

более полезным, однако, является то, что HTML-объекты защищают вас от ваших собственных ошибок: если вы неправильно настроили что-то на сервере, и вы в конечном итоге обслуживаете страницу с заголовком HTTP, который говорит, что это ISO-8859-1 и META тег, который говорит, что это UTF-8, по крайней мере, ваши-Эс всегда будут работать.

HTML-объекты полезны, когда вы хотите создать контент, который будет включен (динамически) в страницы с (несколькими) различными кодировками. Например, у нас есть содержимое white label, которое включено как в кодированные веб-страницы ISO-8859-1, так и в UTF-8...

Если преобразование набора символов из / в UTF-8 не было таким большим ненадежным беспорядком (вы всегда натыкаетесь на некоторые символы и некоторые инструменты, которые не преобразуются должным образом), стандартизация на UTF-8 будет способом идти.

Если ваши страницы правильно закодированы в utf-8, вам не нужны HTML-объекты, просто используйте символы, которые вы хотите напрямую.

все предыдущие ответы имеют для меня смысл.

кроме того: это в основном зависит от редактора, который вы собираетесь использовать, и языка документа. В качестве минимального требования к редактору является то, что он поддерживает язык документа. Это означает, что если ваш текст на японском языке, остерегайтесь использования редактора, который не показывает их (т. е. никаких объектов для самого документа). Если его английский, вы даже можете использовать старый vim-подобный редактор и использовать сущности только для относительного редко © и друзья. Конечно: > for > и другие HTML-спецы все еще нуждаются в побегах. Но даже с другими латинскими языками-1 (немецкий, французский и т. д.) писать ä боль в вы знаете где...

кроме того, я лично пишу сущности для невидимых символов и тех, которые выглядят похожими на standard-ascii и поэтому легко путаются. Например, есть u1173 (похожий на тире в некоторых кодировках) или u1175, который выглядит как вертикальная полоса. Я бы использовал сущности для тех, кто в любом случай.

Comments

    Ничего не найдено.