このツールの動作
XML があらかじめ定義する5つの実体参照(&、<、>、"、')と、数値文字参照の両形式を復号します。10進の A と16進の A のどちらにも対応し、U+FFFF を超える文字も扱えるため、😀 はその絵文字に戻ります。
実体参照の名前は XML の規定どおり大文字と小文字を区別します。& は復号されますが、& は復号されません。参照にはセミコロンも必要で、セミコロンのない & はただのテキストとしてそのまま残ります。
意図的に1回だけのパス
復号はちょうど1回だけ行われます。&lt; は < ではなく < になります。&lt; は < という文字どおりのテキストをエスケープした形であり、そのテキストこそが正しい答えだからです。
2回目の復号を走らせることは、エスケープ済みのマークアップを生きたマークアップに戻すことであり、インジェクション系の不具合を丸ごと一群生み出す操作です。値が本当に二重にエンコードされている場合は、結果をもう一度貼り付けて復号してください。ツールが勝手に決めるのではなく、あなたが選ぶ操作にするためです。
このツールがしないこと
HTML の名前付き実体参照は対象外です。 、© をはじめとする数千の実体参照は XML ではなく HTML のものなので、そのまま返ります。
不正な数値文字参照は、置き換えずに文字どおり保持します。サロゲート符号位置(�)や U+10FFFF を超える値(�)はどの文字にも対応させられないため、参照をそのまま返すことで、入力を黙って失わずに復元可能な状態に保ちます。XML 1.0 がそもそも表現できない文字についても同様です。NUL、ほとんどの制御文字、非文字である U+FFFE と U+FFFF がそれにあたり、� や  は書かれたとおりに返ります。これらを復号すれば、どの XML パーサも受け付けない文書ができてしまいます。
プライバシー
すべての処理はブラウザ内のJavaScriptだけで完結します。データがアップロードされることはないため、機密情報でも安心して利用でき、オフラインでも動作します。