HTML テキストをエスケープ・アンエスケープする方法

マークアップまたは文字参照化されたテキストを入力欄に貼り付けます。「HTML をエスケープ」は HTML テキストを壊す 6 文字(& < > " ' とバッククォート)を文字参照に置き換え、「HTML をアンエスケープ」は文字参照を元の文字に戻します。

どちらの処理もこのページ内で実行され、入力は送信されず、オフラインでも動作します。結果パネルにはコピーされる内容がそのまま表示され、「クリア」で入力と結果をまとめて消去できます。

  1. HTML ソース、プレーンテキスト、または文字参照化されたテキストを入力欄に貼り付けます。
  2. 「HTML をエスケープ」で 6 つの特殊文字を置き換えるか、「HTML をアンエスケープ」で文字参照をデコードします。
  3. 続けて押す前に方向を確認します。すでにエスケープ済みのテキストを再度エスケープすると & が二重に変換されます。
  4. 結果を確認して「コピー」を押します。「クリア」は入力欄と出力パネルの両方をリセットします。
  5. そのままエディターで作業を続けるか、整形したい場合は「HTML を整形」を使ってください。

各ボタンが変換するもの、変換しないもの

「HTML をエスケープ」が変換するもの

変わるのは 6 文字だけです。& は &amp;、< は &lt;、> は &gt;、" は &quot;、' は &#x27;、バッククォートは &#x60; になります。アクセント記号、日本語などの CJK テキスト、絵文字、改行はそのままコピーされます。

エスケープは繰り返し実行できる処理ではありません。& はどの文字参照にも含まれるため、&amp; をエスケープすると &amp;amp; になります。元のテキストに一度だけ実行し、以前の結果を確認したいときは先にアンエスケープしてください。

「HTML をアンエスケープ」がデコードするもの

ブラウザーと同じ規則で文字参照をデコードします。10 進数・16 進数の数値参照(&#39;、&#x27;、&#169;)、&nbsp; や &hellip;、&copy; などの名前付き参照、そしてセミコロンなしで許容される古い形式(&amp、&lt)です。

ブラウザーが知らない名前(&foo; など)はそのまま残り、無効なコードポイント(&#x110000; など)は置換文字 U+FFFD になります。古い接頭辞はセミコロンなしでも HTML と同じようにデコードされるため、&notanentity; は &not として解釈され ¬anentity; になります。独自のテーブルではなくブラウザー自身の挙動なので、実際のパーサーと結果が一致します。

用途と制限

ドキュメントでコード例を表示する、ユーザー入力を HTML テンプレートに差し込む前にエスケープする、API やメールから届いた文字参照をデコードする、といった用途に向いています。出力はプレーンテキストなので、そのままエディターに貼り付けられます。

HTML 構造の検証や整形は行いません。URL のパーセントエンコーディング(%20)や JavaScript・JSON のエスケープ(\n など)も対象外です。大きな入力もページ内で処理するため、ハイライト表示に少し時間がかかることがあります。

最近使ったツール: