Aller au contenu
uencoder

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ünchen
    Output
    xn--mnchen-3ya

    Encoding 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

Outils associés

References