100% ローカル — データがブラウザの外に出ることはありません

XMLのエスケープ解除|逃がされた断片をそのまま読み取れます

XMLの5つの実体参照と数値文字参照を、一度の走査ですべてテキストに戻します。その文書が実際に運んでいた中身を、書かれたときのまま目で読み取れるようになります。

高速 プライベート Cookieゼロ

XML Escaped 入力

Text 出力

このツールの動作

XML があらかじめ定義する5つの実体参照(&、<、>、"、')と、数値文字参照の両形式を復号します。10進の A と16進の A のどちらにも対応し、U+FFFF を超える文字も扱えるため、😀 はその絵文字に戻ります。

実体参照の名前は XML の規定どおり大文字と小文字を区別します。& は復号されますが、& は復号されません。参照にはセミコロンも必要で、セミコロンのない &amp はただのテキストとしてそのまま残ります。

意図的に1回だけのパス

復号はちょうど1回だけ行われます。&amp;lt; は < ではなく &lt; になります。&amp;lt; は &lt; という文字どおりのテキストをエスケープした形であり、そのテキストこそが正しい答えだからです。

2回目の復号を走らせることは、エスケープ済みのマークアップを生きたマークアップに戻すことであり、インジェクション系の不具合を丸ごと一群生み出す操作です。値が本当に二重にエンコードされている場合は、結果をもう一度貼り付けて復号してください。ツールが勝手に決めるのではなく、あなたが選ぶ操作にするためです。

このツールがしないこと

HTML の名前付き実体参照は対象外です。&nbsp;、&copy; をはじめとする数千の実体参照は XML ではなく HTML のものなので、そのまま返ります。

不正な数値文字参照は、置き換えずに文字どおり保持します。サロゲート符号位置(&#xD800;)や U+10FFFF を超える値(&#99999999;)はどの文字にも対応させられないため、参照をそのまま返すことで、入力を黙って失わずに復元可能な状態に保ちます。XML 1.0 がそもそも表現できない文字についても同様です。NUL、ほとんどの制御文字、非文字である U+FFFE と U+FFFF がそれにあたり、&#0; や &#xFFFF; は書かれたとおりに返ります。これらを復号すれば、どの XML パーサも受け付けない文書ができてしまいます。

プライバシー

すべての処理はブラウザ内のJavaScriptだけで完結します。データがアップロードされることはないため、機密情報でも安心して利用でき、オフラインでも動作します。

よくある質問

なぜ `&nbsp;` はそのまま残るのですか。
XML の実体参照ではないからです。XML が定義するのは `&amp;`、`&lt;`、`&gt;`、`&quot;`、`&apos;` のちょうど5つだけで、それ以外は HTML のものです。それらには HTML 実体参照用のツールを使ってください。
なぜ `&amp;lt;` が `<` ではなく `&lt;` になるのですか。
復号を意図的に1回だけ行うからです。`&amp;lt;` は `&lt;` というテキストをエスケープした形なので、1回のパスが正しい答えです。2回復号することこそが、エスケープ済みのマークアップを生きたマークアップに戻してしまう操作です。
不正な数値文字参照はどうなりますか。
書かれたとおりに返ります。`&#xD800;` のようなサロゲート符号位置や `&#99999999;` のような範囲外の値には対応する文字が存在しないため、置換文字に変えるのではなく参照をそのまま保持します。

関連ツール