Punycode
Obsoleto desde: v7.0.0
[Estable: 0 - Obsoleto]
Estable: 0 Estabilidad: 0 - Obsoleto
Código Fuente: lib/punycode.js
La versión del módulo punycode incluido en Node.js está quedando obsoleta. En una futura versión principal de Node.js, este módulo se eliminará. Los usuarios que actualmente dependen del módulo punycode
deben cambiar al módulo Punycode.js proporcionado por el espacio de usuario. Para la codificación de URL basada en punycode, consulte url.domainToASCII
o, más generalmente, la API URL de WHATWG.
El módulo punycode
es una versión incluida del módulo Punycode.js. Se puede acceder a él usando:
const punycode = require('node:punycode');
Punycode es un esquema de codificación de caracteres definido por RFC 3492 que está destinado principalmente para su uso en nombres de dominio internacionalizados. Debido a que los nombres de host en las URL están limitados solo a caracteres ASCII, los nombres de dominio que contienen caracteres no ASCII deben convertirse a ASCII utilizando el esquema Punycode. Por ejemplo, el carácter japonés que se traduce a la palabra en inglés, 'example'
es '例'
. El nombre de dominio internacionalizado, '例.com'
(equivalente a 'example.com'
) está representado por Punycode como la cadena ASCII 'xn--fsq.com'
.
El módulo punycode
proporciona una implementación simple del estándar Punycode.
El módulo punycode
es una dependencia de terceros utilizada por Node.js y puesta a disposición de los desarrolladores como una conveniencia. Las correcciones u otras modificaciones al módulo deben dirigirse al proyecto Punycode.js.
punycode.decode(string)
Agregado en: v0.5.1
string
<string>
El método punycode.decode()
convierte una cadena Punycode de caracteres ASCII solamente a la cadena equivalente de puntos de código Unicode.
punycode.decode('maana-pta'); // 'mañana'
punycode.decode('--dqo34k'); // '☃-⌘'
punycode.encode(string)
Añadido en: v0.5.1
string
<string>
El método punycode.encode()
convierte una cadena de puntos de código Unicode a una cadena Punycode de caracteres ASCII únicamente.
punycode.encode('mañana'); // 'maana-pta'
punycode.encode('☃-⌘'); // '--dqo34k'
punycode.toASCII(domain)
Añadido en: v0.6.1
domain
<string>
El método punycode.toASCII()
convierte una cadena Unicode que representa un Nombre de Dominio Internacionalizado a Punycode. Solo se convertirán las partes no ASCII del nombre de dominio. Llamar a punycode.toASCII()
en una cadena que ya contiene solo caracteres ASCII no tendrá ningún efecto.
// encode domain names
punycode.toASCII('mañana.com'); // 'xn--maana-pta.com'
punycode.toASCII('☃-⌘.com'); // 'xn----dqo34k.com'
punycode.toASCII('example.com'); // 'example.com'
punycode.toUnicode(domain)
Añadido en: v0.6.1
domain
<string>
El método punycode.toUnicode()
convierte una cadena que representa un nombre de dominio que contiene caracteres codificados Punycode a Unicode. Solo se convertirán las partes del nombre de dominio codificadas con Punycode.
// decode domain names
punycode.toUnicode('xn--maana-pta.com'); // 'mañana.com'
punycode.toUnicode('xn----dqo34k.com'); // '☃-⌘.com'
punycode.toUnicode('example.com'); // 'example.com'
punycode.ucs2
Añadido en: v0.7.0
punycode.ucs2.decode(string)
Añadido en: v0.7.0
string
<string>
El método punycode.ucs2.decode()
devuelve un array que contiene los valores numéricos de los puntos de código de cada símbolo Unicode en la cadena.
punycode.ucs2.decode('abc'); // [0x61, 0x62, 0x63]
// surrogate pair for U+1D306 tetragram for centre:
punycode.ucs2.decode('\uD834\uDF06'); // [0x1D306]
punycode.ucs2.encode(codePoints)
Agregado en: v0.7.0
codePoints
<integer[]>
El método punycode.ucs2.encode()
devuelve una cadena basada en una matriz de valores de puntos de código numéricos.
punycode.ucs2.encode([0x61, 0x62, 0x63]); // 'abc'
punycode.ucs2.encode([0x1D306]); // '\uD834\uDF06'
punycode.version
Agregado en: v0.6.1
Devuelve una cadena que identifica el número de versión actual de Punycode.js.