HTML 5 ではどの文字をエスケープする必要がありますか? 質問する

HTML 5 ではどの文字をエスケープする必要がありますか? 質問する

HTML 4の状態はどの文字エスケープする必要があります:

次の 4 つの文字エンティティ参照は、特殊文字をエスケープするために頻繁に使用されるため、特に言及する価値があります。

  • 「<」は<記号を表します。
  • 「>」は>記号を表します。
  • 「&」は&記号を表します。
  • 「"」は「」マークを表します。

テキストに「<」文字を入れたい著者は、タグの始まり(開始タグ開始区切り文字)との混同を避けるために、「<」(ASCII 10 進数 60)を使用する必要があります。同様に、引用符で囲まれた属性値に出現した場合に、古いユーザー エージェントがこれをタグの終わり(タグ終了区切り文字)と誤って認識する問題を回避するために、著者はテキストで「>」の代わりに「>」(ASCII 10 進数 62)を使用する必要があります。

作成者は、文字参照の開始 (エンティティ参照の開始区切り文字) との混同を避けるために、「&」の代わりに「&」(ASCII 10 進数 38) を使用する必要があります。また、文字参照は CDATA 属性値内で許可されるため、作成者は属性値でも「&」を使用する必要があります。

二重引用符 (") は属性値を区切るために使用できるため、一部の作成者は文字エンティティ参照 """ を使用して二重引用符のインスタンスをエンコードします。

HTML 5でこのようなものが見つからないことに驚きました。grepの助けを借りて、私が見つけた唯一の非XMLの言及は、非推奨のXMP要素:

代わりに pre と code を使用し、"<" と "&" 文字をそれぞれ "<" と "&" にエスケープします。

この件に関して公式の情報源を教えていただけますか?

ベストアンサー1

仕様では通常の要素の構文を定義しているとして:

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

だからあなたは逃げなければならない<&または人物紹介の始まりになりそうなものアンパサンドに関するルールは、引用符で囲まれた属性に対する唯一のルールです。対応する引用符だけが属性を終了させるからです。(当然ですが、属性値をそこで終了したくない場合は、引用符をエスケープします。)

<script>これらのルールはとには適用されません<style>。これらの には動的なコンテンツを入れないようにしてください。(しなければならないJSON を に含め<script>、に置き換え、U+2028 文字を に<置き換え、JSON シリアル化後に U+2029 を に置き換えます。\x3c\u2028\u2029

おすすめ記事