1. ホーム
  2. html

[解決済み] HTML5でエスケープしなければならない文字は何ですか?

2022-02-17 11:27:25

質問

HTML 4の状態はきれい どの文字 をエスケープする必要があります。

4文字の実体参照は、特に言及すべきです。 は、特殊文字のエスケープによく使われます。

  • "&lt;"は、<記号を表します。
  • は、"&gt;" を表します。
  • は、"&amp;"記号を表します。
  • "&quot;は"マークを表します。

作者が テキストに "<" という文字を入れたい場合は、 "&lt;" (ASCII 10進数 60) を使用します。 タグの始まりと混同する可能性があるため(開始タグ オープンデリミタ)を使用します。同様に、著者は "&gt;" (ASCII 10進数) を使用する必要があります。 62) の代わりに、テキストで ">" を使用すると、古いユーザーエージェントとの問題を回避することができます。 タグの終端(タグクローズ)と誤認識されることがあります。 デリミタ)が引用された属性値中に現れる。

の代わりに "&amp;" (ASCII 10進数 38) を使用する必要があります。 文字参照の先頭と混同する(entity 参照オープンデリミタ)。また、quot;&amp;" を使用する必要があります。 属性値では文字参照が認められているので、CDATA 属性の値です。

一部の著者は、文字実体参照 "&quot;" を使用して、次のようにエンコードしています。 のインスタンスを作成することができます。 は、属性値を区切るために使用されます。

HTML 5でこのようなことが見つからないのは驚きです。grepの助けを借りて、私が見つけた唯一の非XMLの記述は、以下の点に関する余談です。 非推奨のXMP要素 :

また、quot;<" と "&" はそれぞれ "&lt;" と "&amp;" としてエスケープしてください。

この件に関する公式ソースを教えてください。

解決方法は?

その 仕様は、通常の要素のための構文を定義しています としています。

通常の要素は、テキスト、文字参照、他の要素、コメントを持つことができますが、テキストは文字U+003C LESS-THAN SIGN (<) やあいまいなアンパサンドを含んではいけません。いくつかの通常の要素は、内容モデルやこの段落で説明した制限を越えて、保持することが許される内容に関してさらに多くの制限を持つものもあります。それらの制限を以下に説明する。

そのため < または & が続く場合 文字参照を開始することができるもの . アンパサンドに関する規則は、引用符で囲まれた属性に関する唯一の規則であり、一致する引用符は属性を終了させる唯一のものです。(もちろん、そこで属性値を終了させたくない場合は、引用符をエスケープしてください)。

これらのルールは <script><style> ダイナミックコンテンツをそこに入れるのは避けるべきです。(もし しなければならない にJSONを含めることができます。 <script> に置き換える。 <\x3c の場合、U+2028の文字に \u2028 で、U+2029 で \u2029 JSONシリアライズ後)