Ce que ça fait
Convertit les noms de domaine internationalisés entre Unicode et punycode — la forme ASCII (labels xn--) que le DNS résout réellement. Tapez münchen.de et vous obtenez xn--mnchen-3ya.de, le nom qu’un registrar stocke et qu’un résolveur interroge. Le sens inverse restaure la forme d’affichage Unicode. L’outil exécute lui-même l’algorithme bootstring complet de la RFC 3492 et suit la règle IDNA qui n’encode que les labels contenant des caractères non-ASCII, donc les labels purement ASCII passent intacts.
Comment l’utiliser
- Choisissez un sens : Unicode → Punycode ou Punycode → Unicode.
- Tapez un domaine, ou touchez une puce d’exemple :
münchen.de,日本.jp,xn--mnchen-3ya.de,bücher.example. - Le résultat apparaît grand et centré. Copiez-le, ou copiez un lien de partage vers votre entrée exacte.
Le bouton Swap inverse le sens et transporte la sortie courante dans l’entrée. Encodez un domaine, touchez Swap, et l’outil le décode en retour en un clic.
Exemples
| Entrée | Sortie |
|---|---|
münchen.de |
xn--mnchen-3ya.de |
Bücher.DE |
xn--bcher-kva.de — l’entrée est d’abord passée en minuscules, selon l’IDNA |
café.fr |
xn--caf-dma.fr |
日本.jp |
xn--wgv71a.jp |
example.com |
example.com — l’ASCII pur passe tel quel |
xn--mnchen-3ya.de |
münchen.de |
Comment fonctionne le punycode
Le DNS ne parle qu’ASCII. Résolveurs, registres et caches ont tous été bâtis sur des octets, pas sur Unicode. Pourtant les gens veulent des domaines dans leur propre écriture, donc un nom internationalisé voyage déguisé : chaque label non-ASCII est comprimé dans un label ASCII préfixé xn--, et le navigateur n’affiche la forme Unicode qu’après la réussite de la résolution. Le préfixe est le marqueur qui dit « décode-moi pour retrouver le vrai label ».
La compression est la partie astucieuse. Un label comme münchen est surtout des lettres ASCII plus un intrus (ü). Le punycode, défini dans la RFC 3492 comme un algorithme bootstring, empaquette les intrus et leurs positions dans un suffixe compact de chiffres base 36 et de tirets :
- Recopiez les caractères ASCII, dans l’ordre :
mnchen. - Ajoutez un tiret séparateur :
mnchen-. - Ajoutez des valeurs encodées en deltas qui nomment chaque caractère inséré et sa position :
3ya.
Le résultat, xn--mnchen-3ya, n’appartient qu’à münchen — l’algorithme est réversible, et encoder le décodage retourne toujours le même label. Le décodage coupe le label au séparateur, rejoue les deltas et réinsère chaque caractère Unicode à sa position enregistrée.
Deux règles de clôture tirées de l’IDNA : l’encodage passe d’abord le domaine en minuscules, car les domaines se comparent sans casse et la forme ACE est toujours en minuscules. Le décodage ne touche que les labels commençant par xn-- ; tout le reste passe verbatim, donc not--valid reste not--valid. Un seul label xn-- malformé — un mauvais chiffre, une troncature, un dépassement — rejette tout le domaine, et l’outil le dit.
Bon à savoir
- Privé : toute la conversion s’exécute 100 % côté client — votre domaine ne quitte jamais le navigateur.
- Vigilance hameçonnage : les labels
xn--peuvent imiter des noms familiers (attaques par homoglyphes). Les navigateurs révèlent la forme punycode quand des écritures se mélangent dans un même label ; cet outil vous montre exactement ce que chaque label cache. - Outils liés : URL Inspector, HTML Entity Encoder, Slugify.