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.
Tout s'exécute dans votre navigateur — votre saisie n'est jamais envoyée, journalisée ni stockée.
Le résultat apparaît ici 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 |   |
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
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
Lisez le résultat
Le texte lisible apparaît immédiatement, avec l'indication des formes reconnues.
- 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
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.
\ud83d\ude00
\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.
’ -> U+0092
’ -> 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.
\4E2Da
\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 ?
Les barres obliques inverses ont sauté, il ne me reste que u4e2d. Ça se décode quand même ?
Pourquoi un émoji s'écrit-il avec deux échappements \u ?
Comment faire dans l'autre sens, du texte vers les échappements ?
Deux chaînes semblent identiques mais mon code dit qu'elles diffèrent. Pourquoi ?
Un caractère invisible casse mon code. Comment le trouver ?
Mes données sont-elles envoyées quelque part ?
Outils connexes
Voir tous les outils →Décodeur et Encodeur Base64
Encodage et formatage
Décodez et encodez en Base64 en ligne gratuitement. Conversion en temps réel, support UTF-8 et émojis. 100 % privé, dans votre navigateur.
Convertisseur Base64 en Image
Encodage et formatage
Décodez une chaîne Base64 ou un URI de données en image dans votre navigateur. Aperçu, dimensions et MIME, puis téléchargement en PNG, JPG, GIF, SVG. Sans envoi.
Convertisseur CSV vers JSON
Encodage et formatage
Convertissez du CSV en JSON dans le navigateur. RFC 4180, inférence de types, ligne d'en-tête, sûr pour grands entiers. 100 % privé, sans envoi.
Convertisseur .env vers JSON
Encodage et formatage
Collez un fichier .env, obtenez du JSON instantanément. Vos mots de passe et clés API ne quittent jamais le navigateur — 100 % privé, sans envoi.
Décodeur d'entités HTML gratuit — Décoder le HTML
Encodage et formatage
Décodez les entités HTML et déséchappez le HTML en ligne — gratuit, sans inscription, 100 % dans votre navigateur. Reconvertit les références nommées, décimales & hex en caractères ; jamais envoyé.
Encodeur d'entités HTML gratuit — Échapper le HTML
Encodage et formatage
Encodez les entités HTML et échappez les caractères spéciaux (< > & " ') en ligne — gratuit, sans inscription, 100 % dans votre navigateur. Sortie nommée, décimale ou hexadécimale ; jamais envoyée.