0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0
設定
HTMLエンティティをエンコード・デコードします。必須モードは、HTMLを壊す5つの文字だけをエンコードします:& < > " '拡張済みモードは、さらにすべての非ASCII文字をエンコードします。名前付きエンティティ(&amp;)、10進数(&#38;)、16進数(&#x26;)から選べます。
操作
範囲
フォーマット
0

仕組み

HTML 実体参照は、マークアップで特別な意味を持つ文字(< > & " ')や ASCII 以外の文字を、&lt;、&amp;、&#169; のような並びで表します。こうすることで、ブラウザーはそれらをコードとして解釈せず、テキストとして表示します。

同等の形式が 3 つあります。名前付き(&copy;)、10 進数(&#169;)、16 進数(&#xA9;)です。3 つとも同じ文字になります。名前付きは読みやすいものの、既知の集合にしか存在しません。

「必須」の範囲では HTML を壊す文字(& < > " ')だけをエスケープします。「すべて」の範囲では、さらに ASCII 以外のあらゆる文字もエスケープします。

<a href="#">&lt;a href=&quot;#&quot;&gt;エスケープすると、ブラウザーがタグを解釈するのを防ぎ、テキストとして表示します。
5 < 10 & 3 > 15 &lt; 10 &amp; 3 &gt; 1
© 2024 · €&copy; 2024 · &euro;「すべて」の範囲かつ名前付き形式です。10 進数では &#169; と &#8364;、16 進数では &#xA9; と &#x20AC; になります。

ユースケース

  • HTML コードをページ上でレンダリングせずにテキストとして表示する(例、ドキュメント)。
  • XSS を防ぐために、ユーザー入力を HTML に挿入する前にエスケープする。
  • 特殊記号(©、€、→、½)を、エンコーディングをまたいで移植可能な形で挿入する。
  • ページのソースコードからコピーした、実体参照を含むテキストをデコードする。

よくある質問

名前付き・10 進数・16 進数のどの形式が良いですか?

名前付き(&copy;)が最も読みやすいものの、名前が定義された文字しかカバーしません。10 進数(&#169;)と 16 進数(&#xA9;)はあらゆる Unicode 文字に使えるため、珍しい記号には安全な選択肢です。

実体参照に符号化すると XSS 攻撃を防げますか?

重要な要素ですが、エスケープは文脈(HTML の内容、属性、JavaScript、URL)に応じて行う必要があります。単一の層に頼らず、フレームワークの保護も併用してください。

常にエスケープすべき文字はどれですか?

内容中の & < >、さらに属性値の中の " と '。「必須」の範囲はまさにこの集合をカバーします。

入力したテキストはサーバーに送信されますか?

いいえ。符号化と復号はすべてブラウザー内で行われます。