Convertisseur d'échappement Unicode
Saisissez Hi et obtenez \u0048\u0069 ; un é accentué devient \u00e9 et l'émoji U+1F600 devient la paire \ud83d\ude00. Au décodage, ces séquences redeviennent du texte lisible et les échappements cassés sont refusés plutôt que devinés. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Texte
- Hi
- Mode de calcul
- Encode
- Résultat
- \u0048\u0069
- Longueur
- 12
- Unités de code
- 2
- Nombre d'échappements
- 2
Une simple lettre devient \u0041, un caractère accentué devient \u00e9, et les caractères hors du plan multilingue de base — emoji, écritures historiques et nombreux symboles modernes — apparaissent comme une paire de substitution haute et basse, par exemple \ud83d\ude00. Coller ces séquences à la main est lent et source d'erreurs ; décoder un échappement tronqué ou non hexadécimal peut inventer silencieusement le mauvais caractère si l'outil est trop indulgent. Cette capacité encode le texte brut en séquences contiguës \uXXXX et décode les chaînes denses d'échappements en caractères lisibles avec une pleine conscience des paires de substitution.
Comment les échappements \uXXXX mappent les unités UTF-16
Cette forme ne nomme pas à elle seule un scalaire Unicode complet lorsque le caractère dépasse U+FFFF ; elle nomme une unité de code UTF-16. Les valeurs de U+0000 à U+FFFF (hors cas limites de substituts non appariés que vous pouvez encore émettre comme unités) deviennent un seul échappement, par exemple \u0048 pour le H majuscule ou \u00e9 pour le e aigu. Les scalaires de U+10000 à U+10FFFF sont encodés comme une paire de substitution : d'abord un substitut haut dans la plage U+D800–U+DBFF, puis un substitut bas dans U+DC00–U+DFFF.
Le visage souriant U+1F600 devient donc \ud83d\ude00, et non un échappement à six chiffres. Cette capacité parcourt l'entrée avec conscience des points de code à l'encodage, émet de l'hexadécimal minuscule à quatre chiffres pour chaque unité et, au décodage, recherche \u ou \U suivis de quatre chiffres hexadécimaux. Les queues incomplètes comme \u12, les corps non hexadécimaux comme \uGGGG et les échappements barre inconnus sont rejetés plutôt que devinés.
Les paires haut-bas valides se recombinent en un seul scalaire via fromCodePoint, de sorte que l'aller-retour préserve les emoji et le texte du plan supplémentaire.
Ce que vous envoyez et ce que vous recevez
Envoyez un champ de chaîne obligatoire nommé text et un champ optionnel mode réglé sur encode ou decode. Lorsque mode est omis, encode est la valeur par défaut, de sorte qu'une seule charge utile reste utile. Encode transforme chaque caractère en unités contiguës \uXXXX : Hi devient \u0048\u0069, et une chaîne qui mélange ASCII, café et un emoji produit un résultat plus long mais entièrement échappé.
Decode inverse le processus : il remplace chaque \uXXXX bien formé par l'unité de code correspondante, recombine les paires de substitution en un seul caractère lorsque les deux moitiés sont présentes, et conserve les caractères littéraux jamais échappés afin que les collages mixtes fonctionnent encore. Les échecs de validation ne consomment pas le solde prépayé.
Cas d’usage
Enseigner UTF-16 et les paires de substitution
Montrez aux étudiants qu'un emoji devient deux unités \uXXXX, puis décodez la paire en retour pour ancrer longueur et point de code.
Questions fréquentes
Quel format d'échappement cet outil utilise-t-il ?
Les caractères hors BMP s'encodent comme une paire de substitution haute et basse (par exemple \ud83d\ude00).
Peut-on convertir dans les deux sens ?
Oui. Réglez mode sur encode (par défaut) pour transformer le texte brut en séquences contiguës \uXXXX, ou mode sur decode pour développer les échappements — y compris les paires de substitution — en caractères.
Que se passe-t-il en cas d'échappement mal formé ?
Les formes tronquées comme \u12, les corps non hexadécimaux et les échappements barre inconnus sont rejetés avec un message qui pointe le problème. Les échecs de validation ne sont pas facturés.
Gère-t-il les emoji et les autres caractères hors BMP ?
Oui. Encode émet une paire de substitution de deux unités \uXXXX ; decode recombine une paire haute+basse valide en un seul scalaire, de sorte que l'aller-retour préserve l'emoji d'origine.
Quel est le tarif ?
L'outil du navigateur est gratuit et s'exécute en local.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/enc/unicode-escape \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hi café"}'const res = await fetch("https://api.kit.forhosting.com/enc/unicode-escape", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hi café"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/unicode-escape",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hi café"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/unicode-escape", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hi café"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hi café"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/unicode-escape", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"text": "Hi café"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.unicode_escape",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Les développeurs qui déboguent des charges JSON, des bundles de ressources Java ou des littéraux de chaîne JavaScript rencontrent sans cesse la forme barre-u : quatre chiffres hexadécimaux après \u qui représentent une unité de code UTF-16. L'outil gratuit du navigateur et l'API payante partagent un unique noyau déterministe, de sorte que les démonstrations en classe, les contrôles de CI et les webhooks en direct s'accordent toujours sur le même mappage au prix publié de $0.002 par élément réussi.
Comment les échappements \uXXXX mappent les unités UTF-16
Java, JavaScript et la grammaire des chaînes JSON décrivent le texte Unicode avec le même échappement classique : une barre oblique inverse, la lettre u et exactement quatre chiffres hexadécimaux. Cette conception correspond à ce que l'on voit dans la sortie de JSON.stringify, dans de nombreux fichiers Properties Java et dans le JavaScript ancien antérieur à l'échappement de point de code \u{…}.
Ce que vous envoyez et ce que vous recevez
Au décodage, les compagnons JSON courants tels que \n, \t, \r, \\ et \" sont acceptés, de sorte qu'un fragment copié d'un littéral de chaîne ne échoue pas au premier échappement de nouvelle ligne. Les réponses de succès renvoient mode et le text d'origine, result comme chaîne de sortie principale, ainsi que length, code_units (unités UTF-16 traitées), escape_count (combien de formes \uXXXX ont été produites ou consommées), une étiquette format \uXXXX et une courte note standard nommant Java, JavaScript et JSON. Un text manquant, des valeurs de mode non prises en charge, des chaînes plus longues que le maximum documenté, un hex tronqué après \u, des chiffres non hexadécimaux dans un échappement et des séquences barre inconnues échouent avec invalid_input et un message en anglais qui nomme l'index ou le champ. Le tarif des appels API réussis est la base publiée de $0.002 par élément.
Où la conversion d'échappements Unicode apparaît au travail
Les clients mobiles et de bureau qui parlent à des backends Java journalisent parfois des bundles de style Properties remplis de séquences \u pour chaque libellé accentué ; les équipes de support collent ces lignes sur une page dédiée au convertisseur plutôt que de fouiller les réglages de l'IDE. Les cours de programmation enseignent que la longueur d'une chaîne JavaScript compte les unités UTF-16, non les caractères perçus par l'utilisateur, et un encodeur en direct qui montre deux échappements pour un emoji rend cette leçon concrète. Si vous avez besoin de listes de scalaires U+ sans barres, de dumps hex bruts UTF-16, d'encodage percent pour les URL ou d'entités HTML nommées, traitez-les comme des intentions de recherche et des pages distinctes plutôt que de surcharger cette page de séquences d'échappement Unicode — ces outils répondent à d'autres requêtes même lorsque le code sous-jacent est court. Les auteurs d'API et de webhooks reçoivent souvent du JSON où des noms de produits non ASCII ou des légendes générées par les utilisateurs apparaissent entièrement échappés ; les décoder en texte lisible accélère le triage sans lancer un runtime d'application complet. Comme cette capacité est un moteur de parse pur, le tarif API reste à la base publiée de $0.002 par élément réussi et la validation en échec ne consomme pas le solde.
Cas d'intégration
Décoder du JSON et des journaux Java échappés
Collez une ligne de journal pleine de \u00e9 et de paires de substitution, décodez-la en texte lisible, puis réencodez un fixture corrigé pour le prochain déploiement.
Construire des chaînes golden de CI pour sérialiseurs
Encodez des noms de produits et des légendes emoji en formes stables \uXXXX que les dumps de chaînes JSON et Java doivent faire correspondre après une mise à jour de bibliothèque.