web-dev-qa-db-ja.com

単一引用符をエスケープするために `'`を使用すべきではないのはなぜですか?

で述べたように、 HTMLの単一引用符はいつそれほど人気になりましたか? および JQuery埋め込み引用符の属性 次のように言います:

単一引用符( ')は、属性値を引用するために使用する場合、属性値自体の中に現れる場合は'または'としてエスケープする必要があります(XHTMLドキュメントを除き、'としてエスケープしないでください)。

なぜ'を使用すべきではないのですか?また、"の代わりに"を使用しても安全ですか?

145
brad

"は有効な HTML 4エンティティ の公式リストにありますが、'はそうではありません。

From C.16。名前付き文字参照 '

名前付き文字参照'(アポストロフィ、U + 0027)はXML 1.0で導入されましたが、HTMLには表示されません。したがって、作成者は、'の代わりに'を使用して、HTML 4ユーザーエージェントで期待どおりに動作する必要があります。

162
cletus

'はHTML 4標準の一部ではありません。

ただし、"は使用できます。

27
Anon.

"は、HTML5とHTML4の両方で有効です。

'HTML5 では有効ですが、 HTML4 では無効です。ただし、ほとんどのブラウザーはHTML4の'をサポートしています。

24
Zaz

意味的に正しいマークアップを記述する必要がある場合は、HTML5でも、not'を使用して一重引用符をエスケープする必要があります。ただし、実際には単一引用符ではなくアポストロフィを意味していると想像できます。

単一引用符アポストロフィ は同じように見えるかもしれませんが、意味的には同じではありません。

こちらがアポストロフィです。

HTML4サポートが必要な場合は、’を使用して挿入します。

イギリス英語では、単一引用符は次のように使用されます。

「彼は「やってみろ」と言った」と私は言った。

引用符はペアで提供されます。次を使用できます。

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

意味的に正しい方法で引用符をネストし、実際の文字の置換をレンダリングエンジンに延期する。この置換は、次のような CSSルール の影響を受ける可能性があります。

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

意味的に正しいマークアップについての、古くはあるがまだ関連性のある記事: Theトラブルwith EM´n EN(およびその他の怪しげなキャラクター)

15
R. Schreurs

単一引用符、アポストロフィが本当に必要な場合は、使用できます

html    | numeric | hex
&lsquo; | &#145;  | &#x91; // for the left/beginning single-quote and
&rsquo; | &#146;  | &#x92; // for the right/ending single-quote
2
Jeff