Convertisseur UTF-16
Saisissez Hi et obtenez 00480069 en big-endian, soit deux unités de code et 4 octets. En little-endian, le H devient 48 00. Collez un vidage hexadécimal pour le relire en texte ; les paires de substituts cassées sont refusées. 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
- Ordre des octets
- Be
- Résultat
- 00480069
- Unités de code
- 2
- Octets
- 4
Cet outil convertit un texte simple en un vidage hexadécimal continu de ces unités de code — ou l'inverse — pendant que vous choisissez une disposition gros-boutiste ou petit-boutiste pour chaque unité.
Ce qu'est une unité de code UTF-16 et pourquoi l'hexadécimal aide
Une valeur scalaire Unicode du plan multilingue de base tient dans une seule unité de code de 16 bits. Les caractères hors de ce plan — émojis, nombreuses écritures anciennes et symboles rares — utilisent une paire de substitution : un substitut haut dans la plage U+D800–U+DBFF suivi d'un substitut bas dans U+DC00–U+DFFF. Déboguer un vidage de protocole, une charge du presse-papiers ou un fichier mal étiqueté revient souvent à lire ces unités en hexadécimal plutôt qu'à deviner quel octet est lequel.
L'encodage transforme votre texte en un hexadécimal continu en majuscules, de sorte que chaque paire de chiffres hexa est un octet et chaque groupe de quatre chiffres une unité de code selon le boutisme choisi. Le décodage inverse ce chemin : les espaces, deux-points, tirets bas et traits d'union présents dans la chaîne hexa sont ignorés, ce qui vous permet de coller des vidages issus de lignes de journal ou de captures de paquets sans étape de nettoyage distincte.
La réponse indique toujours combien d'unités de code et d'octets ont été produits, ce qui facilite la comparaison avec un champ de longueur d'une spécification binaire. Comme la conversion est un pur travail d'analyse local, des entrées identiques donnent toujours des sorties identiques, sans dérive de modèle ni dépendance réseau.
Boutisme, choix du mode et règles de bonne formation
Le mode a pour valeur par défaut encode : fournissez du texte simple et recevez de l'hexadécimal. Passez le mode à decode lorsque l'entrée est déjà une représentation hexadécimale d'octets UTF-16. Le boutisme a pour valeur par défaut be (gros-boutiste), de sorte que U+0048 devient la paire d'octets 00 48 ; choisissez le pour un petit-boutiste 48 00, qui correspond à de nombreuses dispositions mémoire Windows et ARM.
Le boutisme s'applique à chaque unité de code indépendamment ; il n'y a ni ajout ni suppression automatique de BOM — si vous avez besoin d'un BOM, vous ajoutez ou retirez vous-même le motif FEFF familier comme unités explicites. Le décodage exige une longueur hexadécimale multiple de quatre après nettoyage, car chaque unité de code occupe deux octets.
Lors de l'encodage comme du décodage, le flux est contrôlé pour repérer les substituts non appariés : une unité haute sans unité basse suivante, une unité basse sans unité haute précédente, ou une paire tronquée en fin d'entrée échouent toutes. Cette règle évite une corruption silencieuse lorsqu'un vidage a été coupé en plein caractère ou qu'une chaîne contenait déjà un substitut isolé. Des valeurs de mode ou de boutisme invalides échouent aussi immédiatement avec un message propre au champ, afin que les clients corrigent la requête sans deviner.
Où l'exécuter et comment fonctionne la tarification
Pour une inspection ponctuelle — lire un vidage UTF-16LE issu d'un export du Registre Windows, vérifier comment un émoji se déploie en deux unités de code, ou confirmer que l'hexadécimal gros-boutiste d'un partenaire correspond à votre texte — utilisez l'outil gratuit dans le navigateur. Insérez l'appel dans un carnet de rétro-ingénierie, un harnais de QA qui vérifie l'égalité du format de transport, ou un flux de support où les clients collent de l'hexadécimal et où vous devez obtenir la chaîne lisible sans ouvrir d'éditeur hexadécimal.
Comme la capacité est un travail d'analyse de tier A, la latence reste basse et il n'y a ni conteneur ni coût de modèle à remesurer après chaque déploiement.
Cas d’usage
Support et rétro-ingénierie
Décodez en texte lisible les vidages hexadécimaux UTF-16 fournis par les clients tout en rejetant les flux de substituts tronqués ou non appariés.
Questions fréquentes
Quelle est la différence entre be et le ?
be (gros-boutiste) place l'octet de poids fort en premier dans chaque unité de 16 bits ; le (petit-boutiste) place l'octet de poids faible en premier. Choisissez la disposition attendue par votre format cible.
Que se passe-t-il avec un substitut non apparié ?
Aucun hexadécimal ni texte partiel n'est renvoyé, et l'appel en échec n'est pas facturé.
Puis-je coller de l'hexadécimal avec espaces ou deux-points ?
Oui, en mode decode. Les espaces, tirets bas, deux-points et traits d'union sont retirés avant l'analyse. Les chiffres restants doivent former des unités de code complètes de deux octets.
À quoi ressemble un émoji en UTF-16 ?
Il occupe deux unités de code, appelées paire de substituts : une moitié haute entre D800 et DBFF suivie d'une moitié basse entre DC00 et DFFF. L'hexadécimal montre donc deux unités pour un seul caractère visible, et les deux doivent rester ensemble.
L'outil ajoute-t-il une marque d'ordre des octets ?
Non. Rien n'est ajouté au début lors de l'encodage, et rien n'est retiré au décodage. Si votre fichier ou votre protocole exige la marque FEFF, ajoutez-la vous-même comme unité explicite, ou retirez-la du vidage avant de le coller.
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/utf16 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hi"}'const res = await fetch("https://api.kit.forhosting.com/enc/utf16", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hi"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/utf16",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hi"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/utf16", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hi"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hi"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/utf16", 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"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.utf16",
"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
L'UTF-16 reste le format de transport et de mémoire derrière les API Windows, de nombreux protocoles binaires, les chaînes internes de JavaScript et des formats d'échange qui raisonnent en unités de code de 16 bits plutôt qu'en octets UTF-8 bruts. Les paires de substitution des caractères situés hors du plan multilingue de base restent intactes ; un substitut haut ou bas isolé échoue par une erreur invalid_input claire au lieu de produire des octets ambigus. Le même chemin déterministe alimente le formulaire gratuit du navigateur et l'API à $0.002 par requête réussie.
Où l'exécuter et comment fonctionne la tarification
Chaque appel d'API réussi coûte $0.002 ; une validation en échec, y compris substituts non appariés et hexadécimal malformé, n'est pas facturée, si bien que sonder de mauvais vidages n'épuise pas le solde prépayé. Les réponses sont un JSON déterministe avec le résultat converti, le mode et le boutisme résolus, et le décompte des unités de code et des octets.
Cas d'intégration
Débogage de protocoles et de formats binaires
Transformez un texte humain en hexadécimal UTF-16 gros- ou petit-boutiste pour le comparer à des captures de paquets, des tampons d'API Windows ou des exemples de spécification.
Génération de fixtures et de données de test
Produisez des fixtures hexadécimales déterministes pour des tests unitaires qui vérifient la longueur d'encodage, les paires de substitution et les dispositions propres au boutisme.
Questions techniques
Que renvoie le mode encode ?
L'hexadécimal continu en majuscules des octets UTF-16 de votre texte selon le boutisme choisi, plus les décomptes code_units et bytes. Aucun BOM n'est ajouté automatiquement.
Combien coûte l'API ?
$0.002 par requête réussie. L'outil du navigateur est gratuit. Une entrée invalide n'est pas facturée.