Punycode
Исходный код: lib/punycode.js
Встроенная в Node.js версия модуля punycode устаревает. В одной из будущих мажорных версий Node.js этот модуль будет удалён. Пользователям, которые сейчас зависят от модуля punycode, следует перейти на предоставляемый сообществом модуль Punycode.js. Для кодирования URL на основе punycode см. url.domainToASCII или, в более общем случае, WHATWG URL API.
Модуль punycode представляет собой встроенную версию модуля Punycode.js. Его можно использовать следующим образом:
const punycode = require('node:punycode'); copy Punycode — это схема кодирования символов, определённая в RFC 3492 и предназначенная в первую очередь для использования в интернационализированных доменных именах. Поскольку имена хостов в URL могут содержать только символы ASCII, доменные имена с не-ASCII символами необходимо преобразовывать в ASCII с помощью схемы Punycode. Например, японский символ, переводящийся на английский как 'example', — это '例'. Интернационализированное доменное имя '例.com' (эквивалент 'example.com') представляется в Punycode строкой ASCII 'xn--fsq.com'.
Модуль punycode предоставляет простую реализацию стандарта Punycode.
Модуль punycode — это сторонняя зависимость, используемая Node.js и предоставленная разработчикам для удобства. Исправления и другие изменения модуля следует направлять в проект Punycode.js.
punycode.decode(string)
-
string<string>
Метод punycode.decode() преобразует строку Punycode, содержащую только символы ASCII, в эквивалентную строку кодовых точек Unicode.
punycode.decode('maana-pta'); // 'mañana'
punycode.decode('--dqo34k'); // '☃-⌘' copy
punycode.encode(string)
-
string<string>
Метод punycode.encode() преобразует строку кодовых точек Unicode в строку Punycode, содержащую только символы ASCII.
punycode.encode('mañana'); // 'maana-pta'
punycode.encode('☃-⌘'); // '--dqo34k' copy
punycode.toASCII(domain)
-
domain<string>
Метод punycode.toASCII() преобразует строку Unicode, представляющую интернационализированное доменное имя, в Punycode. Преобразуются только не-ASCII части доменного имени. Вызов punycode.toASCII() для строки, уже содержащей только символы ASCII, не даст эффекта.
// encode domain names
punycode.toASCII('mañana.com'); // 'xn--maana-pta.com'
punycode.toASCII('☃-⌘.com'); // 'xn----dqo34k.com'
punycode.toASCII('example.com'); // 'example.com' copy
punycode.toUnicode(domain)
-
domain<string>
Метод punycode.toUnicode() преобразует строку, представляющую доменное имя с символами, закодированными в Punycode, в Unicode. Преобразуются только части доменного имени, закодированные в 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' copy
punycode.ucs2
punycode.ucs2.decode(string)
-
string<string>
Метод punycode.ucs2.decode() возвращает массив, содержащий числовые значения кодовых точек каждого символа Unicode в строке.
punycode.ucs2.decode('abc'); // [0x61, 0x62, 0x63]
// surrogate pair for U+1D306 tetragram for centre:
punycode.ucs2.decode('\uD834\uDF06'); // [0x1D306] copy
punycode.ucs2.encode(codePoints)
-
codePoints<integer[]>
Метод punycode.ucs2.encode() возвращает строку, созданную на основе массива числовых значений кодовых точек.
punycode.ucs2.encode([0x61, 0x62, 0x63]); // 'abc' punycode.ucs2.encode([0x1D306]); // '\uD834\uDF06' copy
punycode.version
- Тип: <string>
Возвращает строку с номером текущей версии Punycode.js.
© Joyent, Inc. and other Node contributors
Licensed under the MIT License.
Node.js is a trademark of Joyent, Inc. and is used with its permission.
We are not endorsed by or affiliated with Joyent.
https://nodejs.org/dist/latest-v22.x/docs/api/punycode.html