Movatterモバイル変換


[0]ホーム

URL:


Aller au contenu
Wikipédial'encyclopédie libre
Rechercher

Punycode

Un article de Wikipédia, l'encyclopédie libre.

Punycode (littéralement « code chétif ») est une syntaxe de codage définie dans laRFC 3492[1] et conçue pour être utilisée en adéquation avec lesnoms de domaine internationalisés dans les applications les prenant en charge.

L'algorithme de laRFC 3492 :bootstring

[modifier |modifier le code]

LaRFC 3492 définit unalgorithme appelébootstring qui permet de représenter unechaîne de caractères tirée d'unjeu de caractères étendu au moyen d’une chaîne tirée d’un ensemble de base de caractères (un sous-ensemble souvent très réduit d’ASCII).Bootstring est par définition :

  • complet : chaque chaîne étendue peut être représentée par une chaîne de base ;
  • unique : il y a au plus une chaîne de base qui représente une chaîne étendue donnée ;
  • réversible : toute chaîne étendue transformée peut être retrouvée à partir de sa forme de base ;
  • efficace : le rapport de longueur entre la chaîne étendue et la chaîne de base est petit (ceci est important en raison de la limitation du nombre de caractères dans les noms de domaine, 63, définie dans laRFC 1034[2]) ;
  • simple : l’algorithme de codage et de décodage est simple à mettre en œuvre. Les buts de simplicité et d'efficacité se contredisent ;bootstring concilie les deux ;
  • lisible : les chaînes de base doivent apparaître sous la même forme dans la chaîne étendue et dans la chaîne de base (cela pour des raisons d'efficacité également).

Punycode est une application particulière de l’algorithmebootstring, dédiée aunom de domaine internationalisé, où le jeu de base est très réduit (limité aux seules 26 lettres de l’alphabetlatin de base, sans distinction de casse, et aux 10 chiffres décimaux et au seul signe moins). Il permet toutefois de représenter n’importe quel texte Unicode, même siPunycode est généralement utilisé pour le codage des labels internationalisés dans les noms de domaines, où des restrictions supplémentaires (en plus de celle de la longueur) sont appliquées (notamment un filtrage des caractères autorisés, et une transformation de certains caractères ou certaines séquences dans une forme normalisée, avant leur représentation finale avecPunycode).

D'Unicode à ASCII

[modifier |modifier le code]

Punycode transforme une chaîne Unicode en une chaîne ASCII de manière unique et réversible. Les caractères ASCII dans la chaîne Unicode sont représentés littéralement, et les caractères non-ASCII sont représentés par des caractères ASCII, ces derniers étant tous autorisés dans les labels de nom d'hôte (lettres, chiffres et traits d'union).

Par exemple,bücher devientbcher-kva avecPunycode. De suite, lenom de domainebücher.ch est représenté parxn--bcher-kva.ch en IDNA (le standard permettant d'utiliser des caractères internationalisés dans les applications).

Dansxn--bcher-kva, lepunycode est la partiebcher-kva, à droite du préfixe indiquant un nom internationalxn--[3]. La chaine complète est le codage compatible ASCII (ASCII Compatible Encoding).

Mises en œuvre logicielles

[modifier |modifier le code]

Voir aussi

[modifier |modifier le code]

Notes et références

[modifier |modifier le code]
  1. (en) « Punycode: A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA) »,Request for commentsno 3492,
  2. (en) « DOMAIN NAMES - CONCEPTS AND FACILITIES »,Request for commentsno 1034,
  3. fil d'emails IANA expliquant le choix du préfixe

Bibliographie

[modifier |modifier le code]

Liens externes

[modifier |modifier le code]

Articles connexes

[modifier |modifier le code]
v ·m
Jeux de caractères de baseLogo d'Unicode
Codification de fichiers et protocoles
Adaptations de référence
Équivalences standards
  • NFC (forme précomposée, recommandée)
  • NFD (forme décomposée)
  • NFKC (forme précomposée de compatibilité)
  • NFKD (forme décomposée de compatibilité)
Propriétés et algorithmes
Transformations
Standards et normes liés
  • BCP 47 (étiquettes IETF d’identification de langues)
  • ISO 639 (codes pour la représentation des noms de langues ou groupes de langues)
  • ISO 15924 (codes pour la représentation des noms d’écritures)
  • ISO 3166-1 (codes pour la représentation des noms de pays ou régions du monde)
  • ISO 4217 (codes pour la représentation des noms de devises monétaires)
Mises en œuvre et applications
Ce document provient de « https://fr.wikipedia.org/w/index.php?title=Punycode&oldid=206572760 ».
Catégories :
Catégories cachées :

[8]ページ先頭

©2009-2025 Movatter.jp