本文へスキップ
ToolMug

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

テキストを HTML の中で安全に表示できるようにエスケープしたり、文字実体参照だらけのテキストを読める文字に戻したり、JavaScript・JSON・CSS 用の Unicode エスケープに変換したりできます。デコードは HTML5 標準のすべての名前付き文字参照に対応しています。

ブラウザ内で動作 — 入力した内容はアップロードされません

使い方

  1. 「エンコード」か「デコード」を選び、HTML か「Unicode エスケープ」を選びます。
  2. テキストを貼り付けます。入力に合わせて結果がすぐに更新されます。
  3. HTML のエンコードでは、5 つの特殊文字だけをエスケープするか、非 ASCII 文字もすべてエスケープするかを選びます。
  4. 結果をコピーします。

オプションの説明

特殊文字をエスケープ
& < > " ' を文字実体参照に変換します。UTF-8 の Web ページならこれだけで十分で、ほかの文字は読めるまま残ります。
非 ASCII 文字もエスケープ
ASCII 以外の文字をすべて数値文字参照に変換します。UTF-8 を保存できないシステム向けです。
名前付き実体参照を使う
&copy; や &nbsp; のように名前がある文字は名前で、それ以外は数値文字参照で出力します。
Unicode エスケープ
\uXXXX は JavaScript と JSON 用(絵文字はサロゲートペアとして 2 つのエスケープになります)、\u{…} はモダンな JavaScript 用、U+XXXX はコードポイントの表記用、&#…; は 10 進数の HTML 文字参照です。

よく使う文字参照

文字 名前付き 数値
& &amp; &#38;
< &lt; &#60;
> &gt; &#62;
“ &quot; &#34;
’ &apos; &#39;
ノーブレークスペース &nbsp; &#160;
© &copy; &#169;
— &mdash; &#8212;

よくある質問

HTML エスケープで XSS を防げますか?

HTML 要素の内容にテキストを挿入する前にエスケープするのは、欠かせない対策の 1 つです。ただし属性、URL、JavaScript、CSS の中ではそれぞれ別のエスケープ規則が必要なので、手作業ではなくフレームワークに組み込まれたエスケープ機能を使ってください。

&nbsp; と通常のスペースの違いは何ですか?

ノーブレークスペース(U+00A0)は見た目はスペースですが、ブラウザはその位置で改行しません。また、連続して並べても 1 つにまとめられません。

セミコロンのない &copy でもデコードされるのはなぜですか?

歴史的な理由から、HTML 標準ではよく使われる一部の文字参照を、末尾のセミコロンがなくてもデコードします。このデコーダーはブラウザと同じ規則に従っています。

JSON で絵文字をエスケープして表すには?

「Unicode エスケープ」で \uXXXX を選びます。基本多言語面(BMP)の外にある絵文字は 2 つのエスケープになり、たとえば 😀 は \uD83D\uDE00 になります。

プライバシー

このツールはすべてブラウザ内で動作します。ファイルやテキストはお使いの端末上で処理され、当サイトのサーバーにアップロードされることはありません。

関連ツール