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

Javaのエスケープ解除|ソースの中のリテラルを読み取れます

Javaの文字列リテラルをテキストに戻します。\uXXXX もサロゲートペアも扱えるので、.java から抜き出した一行が、そのまま読める形にきちんと戻ります。

高速 プライベート Cookieゼロ

Java Escaped 入力

Text 出力

このツールの動作

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だけで完結します。データがアップロードされることはないため、機密情報でも安心して利用でき、オフラインでも動作します。

よくある質問

なぜ `\v` が垂直タブになりませんか。
Java には `\v` が存在しないためです。復号すれば `javac` が拒否するものを解釈することになるので、制御文字を作り出さず、裸の `v` を返します。
`\u{...}` と `\xNN` は正しいJavaですか。
いいえ。言語間でコピーされたテキストによく現れるためここでは受け付けますが、`javac` はどちらも拒否します。Java本来の形式は `\uXXXX` だけです。
8進エスケープはどうなりますか。
Java と同じように復号します。`\101` は `A`、`\012` は改行になります。3桁になるのは先頭が 0 から 3 のときだけで、これは Java 自身の規則です。したがって `\400` は `\40` に続く文字 `0` として扱われます。

関連ツール