Punycode
Punycode est un encodage qui convertit les chaînes Unicode (noms de domaine internationalisés) en chaînes compatibles ASCII, la sortie étant marquée du préfixe xn--.
Objectif
Il permet aux noms de domaine en écritures non latines d'être résolus par l'infrastructure DNS limitée à l'ASCII tout en restant compatible avec les systèmes existants.
Mécanisme
Les points de code ASCII de base de l'entrée sont conservés en place ; les points non ASCII sont ajoutés à la fin via un encodage entier généralisé à longueur variable, un délimiteur et les positions d'insertion restaurant l'ordre. La sortie ne contient que des lettres ASCII minuscules, des chiffres et des tirets.
Cas d’usage
- Noms de domaine internationalisés (p. ex. un domaine japonais dont les labels encodent en xn--r8jz45g.xn--zckzah)
- Enregistrement et résolution d'IDN
- Adresses mail internationalisées (repli SMTPUTF8)
- Couche de compatibilité pour les logiciels DNS
Exemples
- entrée
münchenOutputxn--mnchen-3yaEncoding a German city name
Erreurs courantes
- Skipping homograph attack checks for IDN names
- Use ICU to detect suspicious mixed scripts before rendering
Termes associés
URL Encoding
L'encodage URL (percent-encoding) convertit en forme %HH les caractères interdits dans les URL, afin que des données arbitraires puissent figurer en toute sécurité dans les composants de l'URL. GLOSSAIRE
Unicode
Unicode est la norme internationale de codage de caractères qui attribue un point de code unique (U+0000 à U+10FFFF) à chaque caractère de la quasi-totalité des écritures du monde, avec un espace de 1 114 112 points. GLOSSAIRE
DNS
Le DNS résout les noms de domaine en adresses IP ; il se divise en résolution récursive et résolution faisant autorité, et constitue le fondement de l'adressage Internet. GLOSSAIRE