HTML エンティティエンコーダー

テキストを HTML 用にエスケープします。& < > " ' をエンティティにし、非 ASCII 文字も名前付き・10 進・16 進で変換可能。マークアップの崩れを防ぎ、ローカルで動作。

44 文字 · 49 バイト(UTF-8)

0 文字 · 0 バイト(UTF-8)

すべてブラウザ内で実行されます。データがアップロードされることはありません。

HTML エンコードとは?

テキストを、マークアップとして解釈されずに HTML の中へ置けるようにエスケープします。既定では、重要な 5 文字 & < > " ' がエンコードされます。すべての非 ASCII 文字を、&eacute; のような HTML 4 の名前や数値参照のエンティティに変換することもできます。

HTML エンコードの使い方

  1. 入力 にテキストまたは HTML を入力または貼り付けます。
  2. エンコードする文字 を選びます。& < > " ' のみ、またはすべての非 ASCII 文字も含めるかです。
  3. 実体参照の形式 を選びます。名前付き、10 進、16 進のいずれかです。
  4. エスケープされたテキストを 出力 からコピーします。

例

入力
<a href="x">Tom & Jerry's</a>
出力
&lt;a href=&quot;x&quot;&gt;Tom &amp; Jerry&#39;s&lt;/a&gt;

HTML エンコードを使うべき場面

ユーザーが入力したテキストやリテラルのテキストを、HTML、XML のようなテンプレート、コードを示すドキュメントに挿入するときに使います。すべての非 ASCII 文字をエンコードする必要があるのは、UTF-8 を保存できないシステムの場合だけです。HTML テキスト用のエスケープは、<script>、style、URL 属性の中では不十分で、それぞれ文脈に応じたエスケープが必要です。

HTML エンコードの仕組み

テキストはコードポイントごとに処理されます。&、<、>、"、' は常に置き換えられます(' は HTML 4 と 5 で動作する &#39; になります)。非 ASCII モードでは、U+007E を超えるすべての文字が、HTML 4 のエンティティ名があればそれに、なければ数値参照に置き換えられます。絵文字は、2 つのサロゲートの半分ではなく、&#128512; のような 1 つの参照になります。

一般的な使用例

  • Web ページに HTML のコードサンプルを表示する
  • ユーザー入力をマークアップに挿入する前にエスケープする
  • テキストを HTML の属性に安全に入れる
  • レガシーなメールテンプレート用に ASCII のみの HTML を作る

セキュリティ注意事項

エスケープは文脈に依存します。このツールの出力は、HTML の要素の内容と引用符で囲まれた属性では安全ですが、<script> ブロックや引用符なしの属性の中では安全ではありません。

よくある質問

なぜ &apos; ではなく &#39; なのですか?

&apos; は HTML 4 で定義されておらず、古いパーサーの中には認識しないものがあります。&#39; はどこでも動作します。

é や絵文字をエンコードする必要はありますか?

ページが UTF-8 で配信されているなら不要です。現在はそれが標準です。非 ASCII のオプションは、ASCII のみのシステムでだけ使ってください。

これで XSS を防げますか?

HTML のテキストと、引用符で囲まれた属性値に対しては正しいエスケープです。ほかの文脈(JavaScript、CSS、URL)には専用のエスケープが必要で、自動エスケープ機能を持つフレームワークを使うほうが安全です。

他のカテゴリを見る