Punycode
Déprécié depuis : v7.0.0
[Stable: 0 - Déprécié]
Stable: 0 Stabilité : 0 - Déprécié
Code source : lib/punycode.js
La version du module punycode intégrée dans Node.js est en cours de dépréciation. Dans une prochaine version majeure de Node.js, ce module sera supprimé. Les utilisateurs qui dépendent actuellement du module punycode
doivent passer à l'utilisation du module Punycode.js fourni par l'utilisateur. Pour l'encodage d'URL basé sur punycode, voir url.domainToASCII
ou, plus généralement, l'API URL WHATWG.
Le module punycode
est une version regroupée du module Punycode.js. Il est accessible via :
const punycode = require('node:punycode')
Punycode est un schéma d'encodage de caractères défini par la RFC 3492, principalement destiné à être utilisé dans les noms de domaine internationalisés. Étant donné que les noms d'hôte dans les URL sont limités aux seuls caractères ASCII, les noms de domaine qui contiennent des caractères non-ASCII doivent être convertis en ASCII à l'aide du schéma Punycode. Par exemple, le caractère japonais qui se traduit par le mot anglais « example » est « 例 ». Le nom de domaine internationalisé, « 例.com » (équivalent à « example.com ») est représenté par Punycode comme la chaîne ASCII « xn--fsq.com ».
Le module punycode
fournit une implémentation simple du standard Punycode.
Le module punycode
est une dépendance tierce utilisée par Node.js et mise à la disposition des développeurs par commodité. Les corrections ou autres modifications apportées au module doivent être adressées au projet Punycode.js.
punycode.decode(string)
Ajouté dans : v0.5.1
string
<string>
La méthode punycode.decode()
convertit une chaîne Punycode de caractères ASCII uniquement en la chaîne équivalente de points de code Unicode.
punycode.decode('maana-pta') // 'mañana'
punycode.decode('--dqo34k') // '☃-⌘'
punycode.encode(string)
Ajouté dans : v0.5.1
string
<string>
La méthode punycode.encode()
convertit une chaîne de points de code Unicode en une chaîne Punycode de caractères ASCII uniquement.
punycode.encode('mañana') // 'maana-pta'
punycode.encode('☃-⌘') // '--dqo34k'
punycode.toASCII(domain)
Ajouté dans : v0.6.1
domain
<string>
La méthode punycode.toASCII()
convertit une chaîne Unicode représentant un nom de domaine internationalisé en Punycode. Seules les parties non ASCII du nom de domaine seront converties. L'appel de punycode.toASCII()
sur une chaîne qui ne contient déjà que des caractères ASCII n'aura aucun effet.
// encode les noms de domaine
punycode.toASCII('mañana.com') // 'xn--maana-pta.com'
punycode.toASCII('☃-⌘.com') // 'xn----dqo34k.com'
punycode.toASCII('example.com') // 'example.com'
punycode.toUnicode(domain)
Ajouté dans : v0.6.1
domain
<string>
La méthode punycode.toUnicode()
convertit une chaîne représentant un nom de domaine contenant des caractères encodés en Punycode en Unicode. Seules les parties du nom de domaine encodées en Punycode sont converties.
// Décode les noms de domaine
punycode.toUnicode('xn--maana-pta.com') // 'mañana.com'
punycode.toUnicode('xn----dqo34k.com') // '☃-⌘.com'
punycode.toUnicode('example.com') // 'example.com'
punycode.ucs2
Ajouté dans : v0.7.0
punycode.ucs2.decode(string)
Ajouté dans : v0.7.0
string
<string>
La méthode punycode.ucs2.decode()
renvoie un tableau contenant les valeurs numériques de points de code de chaque symbole Unicode dans la chaîne.
punycode.ucs2.decode('abc') // [0x61, 0x62, 0x63]
// paire de substitution pour le tétragramme U+1D306 pour le centre :
punycode.ucs2.decode('\uD834\uDF06') // [0x1D306]
punycode.ucs2.encode(codePoints)
Ajouté dans : v0.7.0
codePoints
<integer[]>
La méthode punycode.ucs2.encode()
renvoie une chaîne basée sur un tableau de valeurs de points de code numériques.
punycode.ucs2.encode([0x61, 0x62, 0x63]) // 'abc'
punycode.ucs2.encode([0x1d306]) // '\uD834\uDF06'
punycode.version
Ajouté dans : v0.6.1
Renvoie une chaîne identifiant le numéro de version actuel de Punycode.js.