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


158

で述べたように、HTMLのシングルクォートが人気になったのはいつですか。そして属性にjQueryの組み込み引用符、HTML上のWikipediaのエントリは次のように述べています:

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

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



7
IE8はをサポートしていないことに注意してください'
ポールD.ウェイト2013

回答:


178

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

C.16から名前付き文字リファレンス '

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


3
"しかし、リストにあるので、大丈夫です。
Bennett McElwee

9
今日、IE8マシンでそれが起こりました。は解析されなかったため、ユーザーにはコードが表示されます。'に置き換える 問題を解決しました。
Michele Gargiulo

9
&aquot; &に代わるものではありません 1つはシングル、もう1つはダブルです。
RichardTheKiwi

参考

30

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

" ただし、使用しても問題ありません。


8
&aquot;の場合、これはどのようにして答えになりますか。= "not '?セミコロンのコロンを提案するようなものです...
RichardTheKiwi

12
@Richardakacyberkiwi最後まで質問を読んでください。
ColBeseder 2012


29

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

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


10
IE 8はをサポートしていないことに注意してください'
ポールD.ウェイト2013

17

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

単一引用符アポストロフィは、意味的には同じではありませんが、同じではありません。

これが 1つのアポストロフィです。

'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が指摘したように、それはまっすぐな単一引用符ではなく、「単一の曲線引用符、正しい」です。


問題は、引用符ではなくアポストロフィの使用についてでした。なぜこれを投稿するのですか?
Alex Skrypnyk 2015

9
タイトルに一重引用符がはっきりと表示されています。問題は、なぜそれらをエスケープすることが&apos; 。&apos;のサポートにより、私はこれに答えました。唯一の懸念ではありません。
R. Schreurs

3
単一引用符はアメリカ英語でもそのように使用されます。
Rob_vH 2016

これは、アポストロフィと一重引用符が同じではないことを明確にし、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!。Eslintからの警告がありました。

それを修正するために、私はquoteをに置き換えましたTime&apos;s up!。結果は期待通りです

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.