Encodeur IDNA
münchen.example.com devient xn--mnchen-3ya.example.com : chaque libellé avec accents ou autre écriture reçoit sa forme xn--, tandis que les libellés en ASCII simple restent inchangés. Dans l'autre sens, décodez un nom d'hôte lu dans un journal ou un en-tête de message. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Texte
- münchen.example.com
- Mode de calcul
- Encode
- Résultat
- xn--mnchen-3ya.example.com
- ASCII
- xn--mnchen-3ya.example.com
- Unicode
- münchen.example.com
- Nombre d'étiquettes
- 3
Les noms de domaine internationalisés permettent aux marques, villes et noms propres d'apparaître en écritures natives sur l'internet public, mais le système de noms de domaine transporte encore les libellés sous forme d'encodages compatibles ASCII. IDNA (Internationalized Domain Names in Applications) associe chaque libellé Unicode U-label à un A-label commençant par xn-- et portant le Punycode RFC 3492, puis inverse le mappage pour que les opérateurs relisent le nom prévu. Cette capacité accepte un nom d'hôte multi-libellés complet —pas seulement un libellé— et convertit dans les deux sens avec un champ mode simple : encode pour ToASCII, decode pour ToUnicode. Les libellés ASCII purs passent inchangés ; les noms mixtes, comme un libellé de ville plus un TLD classique, sont traités libellé par libellé.
Encoder un nom d'hôte Unicode en ASCII IDNA (ToASCII / xn--)
Le moteur découpe le nom d'hôte sur les points, plie chaque libellé de façon indépendante de la locale et traite les libellés séparément, de sorte qu'un nom mixte avec un libellé gauche non ASCII à côté d'un droit ASCII soit converti sans forcer toute la chaîne dans un unique encodeur. Les libellés LDH ASCII purs passent inchangés sans préfixe xn--, conformément à la pratique IDNA pour les noms qui n'ont jamais eu besoin d'internationalisation.
Lorsqu'un libellé contient un point de code non ASCII, le moteur exécute l'encodeur Punycode RFC 3492 et préfixe le résultat avec xn-- pour produire l'A-label utilisé dans les fichiers de zone DNS, les SAN de certificats, les règles d'hôte de reverse proxy et les affichages de type WHOIS. Les libellés qui ressemblent déjà à des formes ACE sont validés par un aller-retour decode-and-re-encode, de sorte qu'une chaîne xn-- éditée à la main échoue de façon fermée au lieu d'être acceptée aveuglément.
Des entrées identiques produisent toujours des sorties identiques car le chemin est de l'arithmétique pure, sans réseau, sans sel aléatoire et sans horloge murale. Utilisez ce chemin lorsque vous avez besoin d'un nom d'hôte ASCII sûr à coller dans une checklist de migration, une ligne de zone, une entrée SAN ACME ou un ticket de support qui doit survivre aux systèmes n'acceptant que l'ASCII.
Le DNS impose une limite de soixante-trois octets par libellé et de deux cent cinquante-trois caractères sur le nom d'hôte ASCII assemblé ; ce moteur vérifie les deux pour que les noms internationaux trop longs échouent tôt plutôt que de produire des chaînes non déployables. La notation FQDN avec point final est conservée lorsqu'elle est présente, tandis que les points initiaux, points consécutifs, schémas, chemins, ports et userinfo sont rejetés pour que la landing SEO reste centrée sur la conversion de domaine nu.
Cas d’usage
Préparation de zone DNS et certificats
Encodez des noms d'hôte de marque ou de ville Unicode en forme ASCII xn-- avant d'écrire des fichiers de zone, listes SAN ACME ou règles d'hôte de reverse proxy n'acceptant que l'ASCII.
Support et lisibilité des journaux
Décodez les noms d'hôte ACE issus d'en-têtes mail, journaux de transparence des certificats et systèmes de tickets en Unicode lisible pour agents et clients.
Questions fréquentes
Comment convertir un domaine Unicode en ASCII IDNA ?
Le champ result renvoie la forme ASCII telle que xn--mnchen-3ya.example.com.
Comment décoder un nom d'hôte xn-- en Unicode ?
Définissez mode à decode et placez le nom d'hôte ACE dans text. Le champ result renvoie la forme Unicode lorsque chaque libellé est valide.
Que se passe-t-il pour un libellé IDNA invalide ?
Le message indique la position du libellé et la raison (corps xn-- vide, Punycode incorrect, libellés vides, limites de longueur). Les échecs ne sont pas facturés.
Puis-je convertir un nom d'hôte multi-libellés complet ?
Oui. Contrairement aux outils Punycode mono-libellé, cette capacité accepte les domaines multi-libellés et convertit chaque libellé selon les règles IDNA, en renvoyant les vues ascii et unicode.
Quelle longueur maximale un nom de domaine peut-il avoir ?
Chaque libellé, entre deux points, peut compter au plus soixante-trois octets une fois converti, et le nom complet en ASCII au plus deux cent cinquante-trois caractères. L'outil vérifie les deux limites pour qu'un nom trop long soit signalé avant d'arriver dans votre zone DNS.
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/idna \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"münchen.example.com"}'const res = await fetch("https://api.kit.forhosting.com/enc/idna", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "münchen.example.com"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/idna",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "münchen.example.com"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/idna", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"münchen.example.com"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"münchen.example.com"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/idna", 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": "münchen.example.com"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.idna",
"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
Corps ACE vides, Punycode tronqué, caractères illégaux, points consécutifs, schémas, chemins et dépassements de longueur DNS échouent avec invalid_input indiquant l'index du libellé fautif au lieu de corrompre silencieusement la chaîne.
Encoder un nom d'hôte Unicode en ASCII IDNA (ToASCII / xn--)
Envoyez un corps JSON avec le champ chaîne obligatoire text fixé à un nom de domaine internationalisé complet —par exemple une marque de ville avec tréma suivie d'un second niveau et d'un TLD classiques— et laissez mode à sa valeur par défaut encode ou définissez mode à encode explicitement. La réponse inclut result (le nom d'hôte ASCII complet), ascii (la même forme filaire), unicode (la vue Unicode pliée), label_count, has_ace true si un libellé a utilisé ACE, mode encode et method idna afin que les tests puissent figer chaque champ.
Décoder les noms d'hôte ACE en Unicode et signaler les libellés invalides
Définissez mode à decode et placez dans text un nom d'hôte ASCII ou ACE mixte tel que xn--mnchen-3ya.example.com. Le moteur parcourt chaque libellé, retire le préfixe xn-- le cas échéant, vérifie que le corps n'utilise que l'alphabet de base des lettres, chiffres et tirets internes, puis exécute le décodeur RFC 3492 pour récupérer les points de code Unicode —y compris les caractères du plan supplémentaire représentés par des paires de substitution dans les chaînes JavaScript. Les libellés ASCII purs non ACE passent en decode, et les libellés Unicode déjà présents dans un nom d'hôte mixte sont acceptés et redérivés en ASCII dans le champ ascii afin que la réponse offre toujours les deux vues. Préférez cette capacité lorsque votre intention de recherche est un encodeur ou décodeur de domaines IDNA pour des noms d'hôte complets ; les expériences de corps Punycode mono-libellé et la résolution DNS en direct appartiennent à d'autres outils. Après décodage d'un libellé, il ré-encode et exige un aller-retour exact contre le corps afin que les chaînes ACE tronquées ou éditées à la main échouent fermées avec invalid_input au lieu de renvoyer des glyphes plausibles mais faux. Corps vides après xn--, caractères illégaux comme la ponctuation, débordements, libellés vides dus à des points consécutifs et libellés dépassant les limites de longueur DNS soulèvent un message invalid_input descriptif incluant la position du libellé en base un, pour que les outils en masse mettent en évidence le segment fautif. Un decode réussi renvoie result et unicode comme forme U-label lisible, ascii comme forme filaire, label_count, has_ace true si une ACE était présente, mode decode et method idna. L'échec de validation n'est pas facturé sur l'API prépayée après rejet du moteur, ce qui garde le decode exploratoire de lignes de journal suspectes peu coûteux tout en protégeant le solde contre un succès silencieux sur des données invalides.
Usage API, tarification, workflows DNS et limites pratiques
Traitez les noms d'hôte complets en un seul appel —le design multi-libellés est volontaire pour que le SEO et le produit correspondent à « encodeur de domaines IDNA » plutôt que d'obliger les clients à découper et recombiner les libellés. N'envoyez pas d'URL complètes : retirez d'abord le schéma et le chemin, et convertissez uniquement le nom d'hôte nu pour que le contrat reste étroit et les messages d'erreur actionnables. Lorsqu'un libellé échoue, corrigez-le et renvoyez ; un succès partiel n'est jamais renvoyé, ce qui garde le code client simple et évite que des noms d'hôte à demi convertis ne fuient vers le DNS de production. Appelez l'encodeur de domaines IDNA gratuit dans le navigateur pour les playbooks de support, démonstrations en classe et contrôles ponctuels de noms d'hôte sans installer de tours OpenSSL s_client ni de runtimes de langage. Utilisez l'API prépayée KIT lorsqu'un backend, panneau registraire, job d'automatisation de certificats, passerelle mail ou SDK a besoin de la même étape encode ou decode sous solde à $0.002 par élément réussi ; les échecs de validation ne consomment jamais le solde après rejet du moteur. Un workflow typique encode un nom d'hôte de marque Unicode avant d'écrire des A-labels dans un modèle de zone ou une liste server_name de reverse proxy, puis décode des noms ACE copiés depuis des en-têtes mail, journaux de transparence des certificats ou sujets de tickets pour que les opérateurs lisent les U-labels prévues. Les auteurs de SDK peuvent mapper le champ result vers un bouton copier tandis que ascii, unicode, label_count et has_ace rendent les exemples OpenAPI explicites pour les lecteurs découvrant IDNA.
Cas d'intégration
Documentation et contrôles golden CI
Épinglez des fixtures encode et decode pour des noms IDNA multi-libellés afin que les échantillons de documentation et tests d'intégration continue échouent vite si le traitement ACE dérive.
Questions techniques
L'encodeur de domaines IDNA est-il gratuit ?
L'outil navigateur s'exécute gratuitement sur votre appareil. Les appels API utilisent le solde prépayé KIT à $0.002 par élément réussi ; les échecs de validation ne sont pas facturés.