このツールの動作
C#の文字列リテラルの中身を読み取り、それが表すテキストを返します。C# が認識するシーケンス(\n、\r、\t、\b、\f、\v、\0、\a)に加え、\uXXXX、コードポイント形式の \u{1F600}、16進形式の \xNN を復号します。\ud83d\ude00 のように書き下されたサロゲートペアは、それが表す1文字に再合成されます。
バックスラッシュの後のそれ以外の文字は裸で返ります。\q は q、\\ はバックスラッシュ1文字になります。
C#が異なる点
\a と \v は、C# にあって Java にない2つのシーケンスです。これらを使っているリテラルは Java ではなく C# 由来だと判断できる、信頼できる手がかりになります。どちらもここで復号され、\a はベル文字 U+0007、\v は垂直タブ U+000B になります。この違いは逆方向にも働きます。Java と JavaScript にはある8進エスケープが、C# にはまったくありません。\101 はその2つでは A ですが、ここでは 101 という3文字として返ります。C# では \0 が名前付きのシーケンスであり、続く 101 はただの文字だからです。
このツールがしないこと
8桁の \U0001F600 形式は認識されず、U0001F600 という文字列として返ります。\u{1F600} かサロゲートペアを使ってください。\e も同様に、文字 e として返ります。
\u{1F600} も C# の構文ではありません。C# にあるのは \uXXXX と8桁の \UXXXXXXXX だけで、波括弧の形式は存在しません。Java のツールと同じく便宜上ここでは受け付けますが、csc は拒否します。つまりこの1文字については、ツールと言語が双方向にずれています。C# にない形式を読み、C# にある形式を読まないからです。
\x はちょうど2桁の16進数として読みますが、C# は1桁から4桁を許します。\x4142 は C# では1文字ですが、ここでは A42 として返ります。これは実際の相違であり、C# のスタイルガイドがこの可変長の形式を勧めない理由でもあります。
最後に、復号するのはリテラルの中身であって C# の式ではありません。連結は行わず、補間の穴は書かれたまま残り、逐語的文字列はそもそも通すべきではありません。
プライバシー
すべての処理はブラウザ内のJavaScriptだけで完結します。データがアップロードされることはないため、機密情報でも安心して利用でき、オフラインでも動作します。