Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

HTMLエスケープ・アンエスケープ

HTMLの特殊文字(& < > " ')をエスケープ文字に置き換えるHTMLエスケープ(エスケープ処理)と、元のテキストに戻すアンエスケープができるツールです。数値参照への変換にも対応しています。

ツール

0文字

モード
形式

HTMLのソースに文字列を安全に埋め込むときに使います(& < > " ' の5文字だけを変換します)。

仕様

本ツールの仕様は以下の通りです:

  • 対応形式: HTMLエスケープ(文字参照への変換)とアンエスケープ
  • 文字コード: Unicode(日本語や絵文字を含むテキストに対応)
  • 入力文字数制限: 100,000文字まで(絵文字などは2文字分として数えます)。超えた場合は変換しません
  • 出力形式: テキスト
  • 自動変換: 入力、モード、形式を変えると、ボタンを押さずに結果を更新します。変換できない場合は、入力が止まってから約0.6秒後にエラーを表示します(空欄のときはエラーにしません)
  • エスケープ: HTMLの特殊文字をエスケープ文字(文字参照)に置き換えるエスケープ処理を行います。「形式」で変換の仕方を選択
    • 最小(既定): & < > " ' の5文字だけを &amp; &lt; &gt; &quot; &#39; に変換。日本語・絵文字・改行はそのまま。' は古いブラウザでも使える &#39; に変換
    • 最小+改行を <br>: 最小の5文字に加えて、改行(LF・CRLF・CR)を <br> に変換
    • 英数字以外をすべて数値参照: 英数字(A〜Z、a〜z、0〜9)以外の文字を、スペース・記号・改行・日本語・絵文字も含めて &#12354; のような10進数の数値参照に変換。絵文字は1つの数値参照になります
    • & も変換するため、エスケープ処理済みの文字列を再度HTMLエスケープすると &amp;amp; のように二重に変換されます
    • 数値参照にできない文字(単独のサロゲート)がある場合は、その位置(何文字目か)を表示
  • アンエスケープ:
    • 名前付きのエスケープ文字(&lt; &gt; &amp; &quot; &nbsp; &copy; などHTML 4.01の252種類と &apos;)を元の文字に変換
    • 10進数(&#60;)と16進数(&#x3C;)の数値参照を元の文字に変換
    • 1回の走査で変換するため、&amp;lt; は &lt; になります(二重には変換しません)
    • 名前の大文字・小文字は区別し、末尾の「;」がない参照や未知の名前はそのまま残します
    • &#0;、サロゲートの範囲、U+10FFFFを超える値の数値参照は置換文字(U+FFFD)に変換。&#128;〜&#159; はブラウザと同じくWindows-1252の文字に変換します(例:&#128; → €、&#147; → “)
    • 入力にある <br> <br/> <br />(大文字・小文字は区別しません)は改行に戻します。「最小+改行を <br>」の結果を元の文章に戻すためです。それ以外のタグはそのまま残します
  • 注意事項:
    • HTMLエスケープはXSS対策を保証するものではありません。属性値やスクリプト内など、埋め込む場所に応じた対策が必要です
    • HTMLの解析、タグの除去、整形には対応していません
    • HTML5で追加された名前付きのエスケープ文字(&NewLine; など)は変換せず、そのまま残します
    • 入力欄の改行はLFとして扱われます
  • 処理方式: ブラウザ内で処理し、入力内容はサーバーに送信しません

使い方

本ツールの使い方は以下の通りです:

  1. テキストボックスにHTMLエスケープしたいテキスト(アンエスケープの場合はエスケープ文字を含むHTML文字列)を入力します。
  2. モード(エスケープ・アンエスケープ)を選択します。
  3. エスケープ時は、形式を選択します。選択中の形式の用途が下に表示されます。
    • 「最小」:HTMLのソースに文字列を安全に埋め込むときのエスケープ処理です。5文字だけをエスケープ文字に変換します(既定)。
    • 「最小+改行を <br>」:ブログなど、文章をそのままHTMLに貼るときに使います。
    • 「英数字以外をすべて数値参照」:文字化けを避けたいときに使います。
    • アンエスケープ時は形式を選択しません。
  4. 下部に変換結果が自動で表示されます。
    • モードや形式を変えると、結果もすぐに更新されます。
  5. 変換できない場合は、入力が止まってから少し後に、エラーの原因が表示されます。数値参照にできない文字は、その位置も表示されます。
  6. 必要に応じて以下を選択することができます。
    • 「クリップボードにコピーする」ボタン
      • 変換結果をクリップボードにコピーできます。
    • 「リセットする」ボタン
      • 入力内容と結果を消去し、モードと形式を初期値に戻します。

※ HTMLエスケープはXSS対策を保証するものではありません。エスケープ処理の結果は、埋め込む場所に応じて確認してください。
※ 入力したテキストはブラウザ内で処理され、サーバーには送信されません。

関連コンテンツ