Skip to content

Convertisseur d'encodage Unicode

Collez n'importe quelle forme d'Unicode et relisez le texte : échappements \u, accolades ES6, points de code U+, entités, octets. L'outil reconnaît la forme et liste toutes les autres d'un coup. 100 % dans votre navigateur.

Sans pistage Fonctionne dans le navigateur Gratuit

Tout s'exécute dans votre navigateur — votre saisie n'est jamais envoyée, journalisée ni stockée.

0 car.
Texte lisible
Le résultat apparaît ici
Normaliser
Toutes les formes d'un coup
JavaScript / Java / JSON uXXXX
ES6 u{XXXXX}
Python uXXXX / UXXXXXXXX
Go uXXXX / UXXXXXXXX
Rust u{XXXXX}
Point de code U+XXXX
HTML décimal &#NNNNN;
HTML hexadécimal &#xXXXX;
Encodé pour URL %XX
CSS XXXXXX
Octets UTF-8 hex
Unités UTF-16 hex
UTF-32 hex
Octets en octal NNN
Points de code décimaux NNNNN
Caractère par caractère
Caractère Point de code UTF-8 UTF-16 Écriture Catégorie Nom
Le résultat apparaît ici

Aide-mémoire

Caractère Point de code JavaScript / Java / JSON Octets UTF-8 Encodé pour URL HTML décimal
中文 U+4E2D U+6587 \u4E2D\u6587 E4 B8 AD E6 96 87 %E4%B8%AD%E6%96%87 中文
😀 U+1F600 \uD83D\uDE00 F0 9F 98 80 %F0%9F%98%80 😀
A U+0041 A 41 A A
U+3000 U+3000 \u3000 E3 80 80 %E3%80%80  
Chaque conversion de l'aide-mémoire a été recoupée entre deux implémentations indépendantes avant publication. — Équipe d'ingénierie Go Tools · 27 août 2026

Comportement vérifié sur Node, Python, Java, Go et un vrai moteur de navigateur, pas déduit de la documentation.

Qu'est-ce qu'un échappement Unicode ?

Un échappement Unicode écrit un caractère uniquement avec de l'ASCII, ce qui lui permet de traverser des systèmes incapables de transporter le caractère lui-même. Le même caractère s'échappe différemment dans presque chaque langage : JavaScript et JSON utilisent quatre chiffres hexadécimaux par unité de code UTF-16, ES6 et Rust prennent un point de code complet entre accolades, Python et Go ajoutent une forme longue à huit chiffres, CSS se contente d'une barre oblique inverse, et HTML a ses propres références numériques et nommées. Toutes ces écritures décrivent le même point de code — c'est pour cette raison qu'une même chaîne peut vous arriver sous une demi-douzaine de visages.

中文
  U+4E2D U+6587         code point
  \u4E2D\u6587          JavaScript / Java / JSON
  \u{4E2D}\u{6587}      ES6 / Rust
  E4 B8 AD E6 96 87     UTF-8
  %E4%B8%AD%E6%96%87    URL
  中文      HTML

Ce que fait ce convertisseur

Reconnaît la forme à votre place

Échappements, accolades, forme longue, points de code, entités, encodage en pourcentage et suites d'octets sont détectés sans changer de mode.

Résiste aux entrées mixtes

Seules les parties encodées changent. Ponctuation JSON, chemins Windows et barres obliques inverses déjà échappées restent tels quels.

Toutes les formes d'un coup

Un seul collage produit le tableau complet, donc vous ne convertissez jamais deux fois pour passer d'un langage à l'autre.

Correct pour chaque langage

Les caractères hors du BMP sortent en forme longue pour Python et Go, là où une paire de substitution échouerait.

Inspection caractère par caractère

Point de code, octets UTF-8 et UTF-16, écriture et catégorie pour chaque caractère, plus le nom Unicode quand il y en a un.

Révèle les caractères invisibles

BOM, caractères de largeur nulle et espaces insécables reçoivent un substitut visible.

Exemples

Décoder une ligne de log sans toucher au reste

{"msg":"\u4e2d\u6587 failed","code":500}
{"msg":"中文 failed","code":500}

Seules les séquences d'échappement changent. Guillemets, clés et nombres restent exactement tels quels : vous pouvez coller une ligne de log entière au lieu d'en extraire les échappements à la main.

Plusieurs formes dans un seul collage

U+4E2D  \u{1F600}  中  \ud83d\ude00
中  😀  中  😀

Un point de code, une accolade ES6, une entité HTML et une paire de substitution, décodés en une seule passe. Rien à sélectionner ni à configurer au préalable.

Un caractère, toutes ses écritures

\u4E2D        JavaScript / Java / JSON
\u{4E2D}      ES6 / Rust
U+4E2D        code point
E4 B8 AD      UTF-8
\344\270\255  octal

Le même caractère écrit comme chaque langage l'attend. Attention : Python et Go exigent la forme longue pour les caractères hors du BMP — une paire de substitution ne compile pas en Go et lève UnicodeEncodeError en Python.

Comment l'utiliser

  1. 1

    Collez

    Séquences d'échappement, points de code, entités, octets encodés ou texte brut. Pas besoin de préciser de quoi il s'agit.

  2. 2

    Lisez le résultat

    Le texte lisible apparaît immédiatement, avec l'indication des formes reconnues.

  3. 3

    Copiez la forme dont vous avez besoin

    Toutes les formes sont listées sous le résultat, chacune avec son propre bouton de copie.

  4. 4

    Inspectez en cas de doute

    Ouvrez le tableau par caractère pour voir points de code, octets, écriture et noms, et activez Révéler pour faire apparaître les caractères invisibles.

Les pièges à connaître

Écrire une paire de substitution là où le langage attend la forme longue

Une paire qui fonctionne en JSON devient deux moitiés cassées en Python et refuse de compiler en Go. Utilisez la forme longue pour les caractères au-dessus de U+FFFF.

✗ Incorrect
\ud83d\ude00
✓ Correct
\U0001F600

Décoder les références numériques HTML comme de simples points de code

Les références comprises entre 128 et 159 doivent être lues à travers windows-1252. Une implémentation naïve transforme une apostrophe typographique en caractère de contrôle invisible, et à ces endroits un vieil export ne montre plus rien du tout.

✗ Incorrect
’  ->  U+0092
✓ Correct
’  ->  U+2019

Placer un échappement CSS court juste avant un caractère hexadécimal

L'analyseur continue d'avaler les chiffres hexadécimaux, donc l'échappement et le caractère suivant fusionnent en un seul point de code erroné. Complétez à six chiffres.

✗ Incorrect
\4E2Da
✓ Correct
\004E2Da

Quand vous en avez besoin

Lire des logs
Les logs serveur et les réponses d'API arrivent souvent avec le non-ASCII échappé. Collez la ligne et lisez-la sans l'éditer d'abord.
Déplacer des chaînes d'un langage à l'autre
Copiez l'échappement dans la forme exacte qu'accepte le langage cible, au lieu de convertir à la main entre paire de substitution et forme longue.
Traquer un bug d'encodage
Quand une comparaison échoue ou qu'une base de données refuse une valeur, le tableau par caractère montre quels points de code et quels octets sont en jeu.
Nettoyer du contenu collé
Le texte copié depuis une page web ou un document traîne souvent des caractères invisibles. Trouvez-les avant qu'ils n'atteignent la production.

Détails techniques

Des unités de code, pas des caractères
JavaScript, Java et JSON échappent des unités de code UTF-16, donc un caractère au-dessus de U+FFFF demande deux échappements. Python et Go proposent à la place une forme à huit chiffres qui prend directement le point de code.
Les références numériques HTML sont remappées
La spécification HTML impose de lire les références numériques de la plage 128 à 159 à travers windows-1252 plutôt que comme des points de code : une référence comme 146 est donc une apostrophe typographique (U+2019) et non un caractère de contrôle invisible.
Les échappements CSS ont besoin d'être complétés
Un échappement CSS consomme jusqu'à six chiffres hexadécimaux, donc un échappement court suivi d'un caractère hexadécimal fusionne en un seul point de code erroné. Compléter à six chiffres lève l'ambiguïté, et un espace placé juste après est consommé comme terminateur.
Une substitution isolée n'a pas le même sort partout
Une substitution non appariée est conservée par la sérialisation JSON, remplacée silencieusement par TextEncoder, refusée par l'encodage en pourcentage, écrite comme un point d'interrogation par Java et transformée en erreur par Python.

Bonnes pratiques

Normalisez avant de comparer
Repliez les deux côtés sur la même forme de normalisation avant toute comparaison ou déduplication, en particulier pour les noms et les identifiants.
Préférez la forme longue pour Python et Go
Une paire de substitution est valide en JSON mais casse dans ces deux langages. Utilisez l'échappement à huit chiffres quand la cible est du source Python ou Go.
Cherchez les caractères invisibles tôt
Validez les entrées collées à la frontière du système plutôt que de déboguer une inégalité bien plus tard.
Gardez la valeur d'origine
Le décodage n'est pas toujours réversible sans perte une fois que des caractères de remplacement apparaissent. Conservez la valeur brute jusqu'à ce que vous soyez sûr.

Questions fréquentes

Que veut dire \u4e2d\u6587 et comment le relire ?
Chaque \uXXXX est une unité de code UTF-16 écrite en hexadécimal. \u4e2d vaut U+4E2D et \u6587 vaut U+6587 : ensemble, ils forment un mot chinois. Collez la chaîne entière dans le champ ci-dessus et le texte lisible revient ; le JSON ou le texte de log qui l'entoure reste intact.
Les barres obliques inverses ont sauté, il ne me reste que u4e2d. Ça se décode quand même ?
Oui. Les terminaux et les pipelines de logs avalent souvent les barres obliques inverses. La forme nue u4e2du6587 est reconnue et décodée, alors qu'un mot ordinaire contenant un u est laissé tranquille.
Pourquoi un émoji s'écrit-il avec deux échappements \u ?
Les caractères au-dessus de U+FFFF ne tiennent pas dans une seule unité de code UTF-16 : JavaScript, Java et JSON les écrivent donc en paire de substitution. Un visage souriant, c'est un point de code, deux unités UTF-16 et quatre octets UTF-8. Le tableau par caractère affiche ces trois comptes côte à côte.
Comment faire dans l'autre sens, du texte vers les échappements ?
Tapez ou collez du texte brut, puis lisez le tableau sous le résultat. Toutes les formes sont produites d'un coup, donc vous copiez exactement celle qu'attend votre langage au lieu de convertir deux fois.
Deux chaînes semblent identiques mais mon code dit qu'elles diffèrent. Pourquoi ?
Elles ne sont probablement pas normalisées de la même façon. Une lettre accentuée peut être un seul point de code ou une lettre de base suivie d'un diacritique combinant : é s'écrit U+00E9, ou e suivi de U+0301. Le rendu est identique, l'égalité non. Le bouton NFC replie les deux côtés sur la même forme. Et la normalisation n'est pas neutre pour le chinois, le japonais et le coréen non plus — un idéogramme de compatibilité comme U+F900 devient U+8C48 sous un simple NFC.
Un caractère invisible casse mon code. Comment le trouver ?
Activez « Révéler les caractères invisibles ». BOM, espaces de largeur nulle, espaces insécables et sélecteurs de variante reçoivent un substitut visible, et le tableau par caractère donne le nom et les octets de chacun. C'est en collant depuis une page web ou un document qu'on en récupère le plus souvent.
Mes données sont-elles envoyées quelque part ?
Non. La conversion se fait dans votre navigateur, sans aucune requête réseau. Rien n'est envoyé, journalisé ni stocké : coller des logs de production ne pose donc pas de problème.