Échappement / déséchappement Unicode

Collez du texte et les séquences apparaissent aussitôt — ou collez \u4F60 pour retrouver les caractères. Sans bouton, sans envoi.

Mode d’emploi

  1. Choisissez Échapper ou Déséchapper — le champ de saisie reste tel quel, vous pouvez donc examiner le même texte des deux côtés sans le retaper.
  2. Échapper : saisissez ou collez du texte et les séquences apparaissent immédiatement. Choisissez la syntaxe utilisée par votre langage cible : \uXXXX (Java, JSON, .properties — les caractères hors BMP deviennent des paires de substitution UTF-16), \u{X} (JavaScript ES6, Rust, Swift, Ruby, PHP), \UXXXXXXXX (Python, C, Go, C#) ou U+XXXX (notation standard Unicode).
  3. Choisissez la plage : « Non-ASCII uniquement » (par défaut) échappe tout ce qui est au-dessus de U+007F et laisse l’ASCII, les espaces et les retours à la ligne intacts ; « Tous les caractères » échappe chaque point de code, la sortie est donc purement ASCII.
  4. Déséchapper : collez un texte contenant des séquences pour retrouver les caractères. La ligne au-dessus du résultat indique combien de caractères ont été décodés et, si un fragment n’a pas pu être lu, lequel et où.

Exemple

Saisie

Café "naïve" 😀

Échappé

Caf\u00E9 "na\u00EFve" \uD83D\uDE00

« é » n’a pas de forme ASCII, il devient donc \u00E9. « 😀 » est U+1F600, au-dessus du BMP, la syntaxe \uXXXX l’écrit donc comme la paire de substitution \uD83D\uDE00. Passez à \u{X} et le même texte donne Caf\u{E9} "na\u{EF}ve" \u{1F600} ; \UXXXXXXXX donne …\U0001F600 ; U+XXXX donne CafU+00E9 "naU+00EF ve" U+1F600 — la double espace après é correspond au séparateur plus l’espace déjà présent dans le texte. Chacune de ces formes se recolle telle quelle en Déséchapper.

Règles, limites et problèmes connus

  • Seules quatre syntaxes sont reconnues : \uXXXX (exactement 4 chiffres hexadécimaux), \u{X} (1 à 6 chiffres), \UXXXXXXXX (exactement 8 chiffres) et U+XXXX (1 à 6 chiffres, U+ en majuscules). %uXXXX, \x{X}, \X CSS et \N{NAME} ne sont pas pris en charge ; les références HTML comme 你 relèvent de l’outil d’entités HTML.
  • \uXXXX comporte toujours 4 chiffres : \u12 et \u12345 ne sont pas lus comme \uXXXX — \u12345 se décode comme U+1234 suivi d’un « 5 » littéral. Écrivez \u{…} quand il vous faut 1 à 6 chiffres.
  • \uXXXX n’a pas de frontière de caractère : \u4F60abc se décode comme 你abc, et U+4F601 est le point de code U+4F601 (5 chiffres, valide), pas U+4F60 suivi de « 1 ».
  • Dans U+XXXX, une espace après un point de code sert de séparateur, pas de contenu : U+4F60 hello se décode comme 你hello. Cet outil écrit une espace après chaque jeton U+ (sauf à la toute fin), sa propre sortie fait donc l’aller-retour ; des jetons écrits à la main sans espace se collent aux chiffres hexadécimaux suivants et sont comptés comme non reconnus.
  • Les paires de substitution n’apparaissent que dans la syntaxe \uXXXX, car c’est la représentation Java/JSON ; \u{1F600}, \U0001F600 et U+1F600 écrivent directement le point de code. Un substitut haut non suivi d’un substitut bas est laissé tel qu’écrit et compté comme non reconnu — jamais remplacé par « � ».
  • Les points de code au-delà de U+10FFFF et la plage des substituts elle-même sont refusés de la même façon : laissés tels quels et comptés, pas remplacés en silence.
  • La plage « Non-ASCII uniquement » n’échappe pas une barre oblique inverse littérale : si votre texte contient déjà \u4f60, Déséchapper le lira comme une séquence. Cette ambiguïté est inhérente à la plage — choisissez « Tous les caractères » quand les barres obliques comptent.
  • Le décodage s’effectue en une seule passe : \u005Cu4F60 devient le texte littéral \u4F60, pas 你. Collez à nouveau si vous avez vraiment besoin de deux couches.
  • Les caractères de contrôle valides se décodent eux-mêmes : \u0000 donne U+0000 (invisible, mais pas une erreur), la sortie peut donc contenir des caractères que vous ne voyez pas.
  • Les séquences de chaîne comme \n et \t restent du texte ordinaire et ne sont pas comptées ; les littéraux JSON complets relèvent d’un autre sujet. Les encodages URL, HTML et Base64 sont aussi des outils distincts.
  • Jusqu’à 100 000 caractères ; au-delà, une erreur s’affiche au lieu d’un résultat tronqué. Au-delà de 20 000 caractères, le résultat se met à jour environ 0,6 s après la fin de la frappe.
  • Pas d’envoi de fichier, pas d’historique et pas de lien de partage transportant votre saisie : tout s’exécute dans votre navigateur et le texte ne quitte jamais la page.

Ce dont on a généralement besoin ensuite, une fois le texte échappé ou déséchappé.