100 % local — vos données ne quittent jamais votre navigateur

Déséchappement Java — lisez un littéral du source

Décodez un littéral Java en texte, \uXXXX et paires de substitution comprises : une ligne sortie d’un fichier .java redevient lisible telle quelle.

Instantané Privé Zéro cookie

Entrée Java Escaped

Sortie Text

Ce que fait cet outil

Il lit le contenu d’un littéral de chaîne Java et rend le texte qu’il représente. Les formes nommées \n, \r, \t, \b, \f et \0 redeviennent leurs caractères, \uXXXX est décodé, et une paire de substitution écrite \ud83d\ude00 est recomposée en l’unique caractère qu’elle encode — c’est ainsi que tout caractère au-delà de U+FFFF doit s’écrire dans un littéral Java.

Comme Java échappe tout caractère non-ASCII en sortie, c’est l’étape qui rend un littéral échappé de nouveau lisible : un mur de é et de 中 redevient le texte accentué et CJK qu’il représente.

Là où Java diffère

L’ensemble de Java est plus petit que celui de JavaScript. Ni \v ni \a n’existent : tous deux ressortent en lettre nue, v et a, plutôt qu’en caractère de contrôle que le langage n’a jamais eu. Les échappements octaux, en revanche, sont décodés en entier : \0 donne NUL, \101 donne A, et la forme à trois chiffres n’est acceptée que si le premier vaut 0 à 3 — ce que dit la grammaire de Java elle-même.

Dans l’autre sens, l’outil est plus permissif que le compilateur. \u{1F600} et \xNN sont acceptés parce qu’ils apparaissent sans cesse dans des textes copiés d’un langage à l’autre, mais aucun des deux n’est du Java valide : javac les refuse.

Ce qu’il ne fait pas

Il décode le contenu d’un littéral, pas une expression Java : rien n’est concaténé, et les blocs de texte (""") ont leurs propres règles d’espacement accessoire que cet outil n’applique pas.

Confidentiel par conception

Tout s’exécute localement dans votre navigateur en JavaScript. Vos données ne sont jamais envoyées sur un serveur, ce qui rend l’outil sûr pour des contenus sensibles, et il fonctionne hors ligne.

Questions fréquentes

Pourquoi `\v` ne donne-t-il pas une tabulation verticale ?
Parce que Java n’a pas de `\v`. L’ajouter reviendrait à décoder une séquence que `javac` refuse : l’outil rend la lettre `v` nue plutôt que d’inventer un caractère de contrôle.
`\u{...}` et `\xNN` sont-ils du Java valide ?
Non. Ils sont acceptés ici parce qu’ils circulent dans des textes copiés d’un langage à l’autre, mais `javac` refuse les deux. Seul `\uXXXX` est du Java réel.
Et les échappements octaux ?
Décodés, exactement comme le fait Java. `\101` donne `A` et `\012` un saut de ligne. Trois chiffres seulement si le premier vaut 0 à 3 — la règle de Java elle-même — donc `\400` vaut `\40` suivi du texte `0`.

Convertisseurs associés