Почему нельзя использовать `& amp;`, чтобы экранировать одинарные кавычки?

158

Как указано в разделе « Когда одинарные кавычки в HTML стали настолько популярными? и Jquery в кавычках в атрибуте , запись в Википедии о HTML говорит следующее:

Символ одинарных кавычек ('), когда он используется для кавычек в значении атрибута, также должен быть экранирован как 'или '(НЕ должен экранироваться, как 'в документах XHTML), когда он появляется внутри самого значения атрибута.

Почему не 'следует использовать? Кроме того, "безопасно ли использоваться вместо "?

штифтик
источник
7
Обратите внимание, что IE8 не поддерживает '.
Пол Д. Уэйт,

Ответы:

178

"есть в официальном списке действительных сущностей HTML 4 , но 'нет.

С С.16. Ссылка на именованный символ ' :

Ссылка ' на именованный символ (апостроф, U + 0027) была введена в XML 1.0, но не отображается в HTML. Поэтому авторам следует использовать 'вместо того, 'чтобы работать, как ожидается, в пользовательских агентах HTML 4.

Клетус
источник
3
"хотя в списке, так что должно быть в порядке.
Беннет МакЭлви
9
Сегодня случилось так, что на машине IE8 & apos; не был проанализирован, поэтому пользователь видит код. Замена на & # 39; решил проблему.
Мишель Гаргиуло
9
& aquot; не является заменой для & a; как один, а другой как двойник.
RichardTheKiwi
К вашему сведению: HTML5 поддерживает обе сущности
Tarol
30

' не является частью стандарта HTML 4.

" Это, однако, хорошо для использования.

Anon.
источник
8
Как это может быть ответом, когда & aquot; = "нет"? Это все равно что предлагать двоеточие для двоеточия ...
RichardTheKiwi
12
@Richardakacyberkiwi Прочитайте вопрос до конца.
ColBeseder
29

" действует как в HTML5, так и в HTML4.

'действует в HTML5 , но не в HTML4 . Тем не менее, большинство браузеров 'в любом случае поддерживают HTML4.

Zaz
источник
10
Обратите внимание, что IE 8 не поддерживает '.
Пол Д. Уэйт,
17

Если вам нужно написать семантически правильную разметку, даже в HTML5, вы не должны использовать 'экранирование одинарных кавычек. Хотя, я могу представить, что вы на самом деле имели в виду апостроф, а не одиночную кавычку.

одиночные кавычки и апострофы не являются семантически одинаковыми, хотя они могут выглядеть одинаково.

Вот один апостроф.

Используйте, 'чтобы вставить его, если вам нужна поддержка HTML4. (отредактированный)

В британском английском одинарные кавычки используются так:

«Он сказал мне« попробовать », - сказал я.

Цитаты идут парами. Ты можешь использовать:

<p><q>He told me to <q>give it a try</q></q>, I said.<p>

иметь вложенные кавычки семантически правильным способом, откладывая замену фактических символов в механизм рендеринга. На эту замену могут повлиять правила CSS , такие как:

q {
  quotes: '"' '"' '<' '>';
} 

Старая, но все еще актуальная статья о семантически правильной разметке: Проблема с EM 'n EN (и другими неясными персонажами) .

(отредактировано) Это раньше было:

Используйте ', чтобы вставить его, если вам нужна поддержка HTML4.

Но, как указал @James_pic, это не прямая одинарная кавычка, а «Правильная одиночная кавычка».

Р. Шреурс
источник
Вопрос был явно об использовании апострофов, а не кавычек. Зачем вы это публикуете?
Алексей Скрипник,
9
Я четко вижу одинарную цитату в заголовке. Вопрос заключался в том, почему не следует избегать их с помощью & apos; , Я ответил на это, потому что поддержка & apos; это не единственная проблема.
Р. Шреурс
3
Одинарные кавычки также используются в американском английском.
Rob_vH
Это должен быть принятый ответ, поскольку в нем разъясняется, что апостроф и одинарные кавычки - это не одно и то же, и поэтому не следует использовать апострофы для включения значения атрибута HTML.
Delroh
В Unicode символ апострофа (& # 39;) классифицируется как кавычка и является единственной формой "прямой" кавычки в спецификации. Советы по использованию & # 8217; в лучшем случае неполный, потому что это символ «Единственная изогнутая кавычка, верно». Если вы действительно стремитесь к семантической корректности, ее следует использовать для правильных кавычек, в то время как & # 8216; («Одиночная изогнутая кавычка слева») следует использовать для левых кавычек.
James_pic
2

Если вам действительно нужны одинарные кавычки, апострофы, вы можете использовать

html    | numeric | hex
&lsquo; | &#145;  | &#x91; // for the left/beginning single-quote and
&rsquo; | &#146;  | &#x92; // for the right/ending single-quote
Джефф
источник
-2

В моем случае это была ошибка, когда я пытался использовать цитату в тексте Time's up! . Есть предупреждение от Эслинт.

Чтобы исправить это, я заменил цитату на Time&apos;s up!. Результат как и ожидалось

Сабит Рахим
источник