100 % lokal — Ihre Daten verlassen nie Ihren Browser

Java-Unescape — ein Literal aus dem Quelltext lesen

Ein Java-String-Literal zurück in Text dekodieren, samt \uXXXX und Surrogatpaaren — eine Zeile aus einer .java-Datei wird wieder lesbar.

Sofort Privat Null Cookies

Java Escaped-Eingabe

Text-Ausgabe

Was dieses Tool macht

Es liest den Inhalt eines Java-String-Literals und gibt den Text zurück, für den er steht. Die benannten Formen \n, \r, \t, \b, \f und \0 werden wieder zu ihren Zeichen, \uXXXX wird dekodiert, und ein ausgeschriebenes Ersatzzeichenpaar \ud83d\ude00 wird zu dem einen Zeichen zusammengesetzt, das es kodiert — genau so muss jedes Zeichen oberhalb von U+FFFF in einem Java-Literal geschrieben werden.

Da Java beim Maskieren jedes Nicht-ASCII-Zeichen umschreibt, ist dies der Schritt, der ein maskiertes Literal wieder lesbar macht: Eine Wand aus é und 中 wird wieder zu dem Text mit Umlauten und CJK-Zeichen, für den sie steht.

Wo Java abweicht

Javas Satz ist kleiner als der von JavaScript. \v und \a gibt es nicht: Beide kommen als nackter Buchstabe zurück, v und a, statt als ein Steuerzeichen, das die Sprache nie hatte. Oktal-Escapes werden dagegen vollständig dekodiert: \0 ergibt NUL, \101 ein A, und die dreistellige Form wird nur akzeptiert, wenn die erste Ziffer 0 bis 3 ist — genau das sagt die Java-Grammatik selbst.

In die andere Richtung ist das Tool großzügiger als der Compiler. \u{1F600} und \xNN werden akzeptiert, weil sie in zwischen Sprachen kopiertem Text ständig vorkommen — gültiges Java ist aber keines von beiden, javac lehnt sie ab.

Was es nicht macht

Es dekodiert den Inhalt eines Literals, keinen Java-Ausdruck: Nichts wird verkettet, und Textblöcke (""") haben eigene Regeln für beiläufige Leerzeichen, die dieses Tool nicht anwendet.

Datenschutz ab Werk

Alles läuft lokal in deinem Browser mit JavaScript. Deine Daten werden nie hochgeladen, wodurch das Tool auch für sensible Inhalte sicher ist und offline funktioniert.

Häufige Fragen

Warum ergibt `\v` keinen vertikalen Tabulator?
Weil Java kein `\v` kennt. Es zu dekodieren hieße, etwas aufzulösen, das `javac` rundweg ablehnt — das Tool gibt stattdessen den nackten Buchstaben `v` zurück.
Sind `\u{...}` und `\xNN` gültiges Java?
Nein. Sie werden hier akzeptiert, weil sie in zwischen Sprachen kopiertem Text ständig auftauchen, aber `javac` lehnt beide ab. Nur `\uXXXX` ist echtes Java.
Und Oktal-Escapes?
Sie werden dekodiert, genau wie Java es tut. `\101` ergibt `A` und `\012` einen Zeilenvorschub. Drei Ziffern nur, wenn die erste 0 bis 3 ist — Javas eigene Regel — also ist `\400` ein `\40` gefolgt vom Text `0`.

Ähnliche Konverter