このツールの動作
Javaの文字列リテラルの中身を読み取り、それが表すテキストを返します。名前付きの \n、\r、\t、\b、\f、\0 はそれぞれの文字に戻り、\uXXXX が復号され、\ud83d\ude00 のように書き下されたサロゲートペアはそれが表す1文字に再合成されます。U+FFFF を超える文字を Java のリテラルに書く方法は、これしかありません。
Java はエスケープ時に非ASCII文字をすべて書き換えるため、この復号こそがエスケープ済みリテラルを再び読めるようにする工程です。é と 中 の羅列が、本来のアクセント付きテキストや漢字に戻ります。
Javaが異なる点
Java の集合は JavaScript より小さく、\v も \a もありません。どちらも言語が持たない制御文字ではなく、裸の v、a として返ります。一方、8進エスケープは完全に復号します。\0 は NUL、\101 は A になり、3桁の形式は先頭が 0 から 3 のときにのみ受け付けます。これは Java の文法そのものが定めている条件です。
逆方向では、このツールはコンパイラより寛容です。\u{1F600} と \xNN は言語間でコピーされたテキストに絶えず現れるため受け付けますが、どちらも Java としては無効で、javac は拒否します。
このツールがしないこと
復号するのはリテラルの中身であって Java の式ではありません。連結は行わず、テキストブロック(""")の付随的な空白に関する独自の規則も適用しません。
プライバシー
すべての処理はブラウザ内のJavaScriptだけで完結します。データがアップロードされることはないため、機密情報でも安心して利用でき、オフラインでも動作します。