Unicode Escape / Unescape
Understand Unicode Escape / Unescape
L'échappement Unicode réécrit les caractères non ASCII sous forme de codes \uXXXX, afin que le texte survive aux fichiers, aux champs et aux systèmes qui n'acceptent que de l'ASCII.
How it works
Chaque caractère au-dessus du point de code 127 est remplacé par une barre oblique inverse suivie de u et de son point de code en hexadécimal, si bien que é (U+00E9) devient \u00E9. Les caractères au-dessus de U+FFFF — les émojis et la plupart des écritures anciennes — ne tiennent pas dans quatre chiffres hexadécimaux, l'outil émet donc la forme à accolades d'ES2015, \u{1F30D}. Les caractères ASCII sont laissés exactement tels quels, ce qui garde la sortie lisible et comparable en diff.
When to use it
- Coller du texte non ASCII dans un fichier Java .properties ou dans un fichier source dont vous ne maîtrisez pas l'encodage.
- Découvrir quel caractère se trouve réellement dans une chaîne quand deux sosies — un trait d'union et un tiret demi-cadratin, une espace et une espace insécable — font échouer une comparaison.
- Écrire une regex ou une donnée de test où un caractère invisible doit devenir visible dans la page.
- Envoyer du texte vers un système hérité ou une colonne de base de données limitée à l'ASCII.
Watch out for
- La forme à accolades \u{1F30D} est du JavaScript valide et du JSON invalide. JSON exige la paire de substitution \uD83C\uDF0D pour le même caractère, si bien qu'un émoji échappé ne peut pas être collé tel quel dans un fichier .json.
- L'échappement ne change pas la chaîne, seulement la façon dont elle est écrite. Deux chaînes d'apparence identique peuvent malgré tout différer — é est soit un point de code unique (U+00E9), soit un e suivi d'un accent combinant (U+0065 U+0301) — et l'échappement est ce qui permet de voir laquelle vous avez.
- \uXXXX, \xXX et %XX sont trois choses différentes : un point de code, un octet et un échappement d'URL. Les confondre est une source ordinaire de mojibake.
Frequently Asked Questions
Que sont les séquences d'échappement Unicode ?
Les échappements Unicode représentent les caractères par leur point de code : \u0041 = « A », \u1F600 = 😀. On les rencontre dans les littéraux de chaîne JavaScript, les fichiers JSON, les fichiers Java properties et les valeurs CSS content, pour représenter n'importe quel caractère dans un code source purement ASCII.
Quelle est la différence entre \u et \u{} ?
\uXXXX (4 chiffres hexadécimaux) couvre le plan multilingue de base (U+0000–U+FFFF). Les caractères au-dessus de U+FFFF (émojis, symboles rares) exigent des paires de substitution (deux séquences \uXXXX) ou la forme étendue moderne \u{XXXXXX}, prise en charge à partir d'ES2015.
Où rencontre-t-on des échappements Unicode dans du vrai code ?
Les développeurs s'en servent dans les motifs regex (\u0041), les fichiers Java .properties, les charges utiles JSON destinées à des systèmes purement ASCII, les champs de base de données au jeu de caractères restreint, et pour intégrer du texte dans des fichiers source dont l'IDE ne gère pas le non-ASCII.
How to Use Unicode Escape / Unescape
- Paste or type your input in the input area above.
- The tool processes your input automatically or click Run.
- Copy or download the result using the action buttons.
- Use Ctrl+Enter to run quickly from the keyboard.