Punycode
- punycode.decode(string)
- punycode.encode(string)
- punycode.toASCII(domain)
- punycode.toUnicode(domain)
- punycode.ucs2
- punycode.version
Стабильность: 0 – устарело или набрало много негативных отзывов
Версия модуля punycode
была встроена в Node,js, но на текущий момент отклонена. В будущей версии Node.js этот модуль будет удален. Пользователи сейчас, в зависимости от модуля punycode должны переключиться на использование предоставленного пользовательскими программами модуля Punycode.js
вместо этого.
Модуль punycode
является встроенной версией модуля Punycode.js. К нему можно получить доступ таким образом:
const punycode = require('punycode');
Punycode является схемой кодировки символов, определенной RFC 3492
, которая изначально была предназначена для использования в интернациональных именах доменов (Internationalized Domain Names). Так как имена хостов в URL
лимитированы только до символов ASCII
, имена доменов, которые содержат не ASCII
символы должны конвертироваться в ASCII
посредством использования схемы Punycode. Например, японский символ, который переводится в английское слово ‘example’ – ‘例’. Интернациональное имя домена, ‘例.com’ представлено punycode в виде ASCII-строки ‘x--fsq.com’
.
Модуль punycode предоставляет простую реализацию стандарта Punycode.
Примечание: модуль punycode
является третьей стороной зависимости , используемой Node.js и созданной доступной для разработчиков в качестве дополнительного удобства. Исправления или другие модификации модуля должны быть направлены в проект Punycode.js
.
punycode.decode(string)
Добавлено в v0.5.1string
-<Строка>
Метод punycode.decode()
конвертирует строку Punycode
из символов ASCII
в эквивалентную строку в коды Unicode.
punycode.decode('maana-pta'); // 'mañana' punycode.decode('--dqo34k'); // '☃-⌘'
punycode.encode(string)
Добавлено в v0.5.1string
-<Строка>
Метод punycode.encode()
конвертирует строку кодов Unicode
в строку Punycode
, состоящую только из символов ASCII
.
punycode.encode('mañana'); // 'maana-pta' punycode.encode('☃-⌘'); // '--dqo34k'
punycode.toASCII(domain)
Добавлено в v0.6.1domain
-<Строка>
Метод 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'
punycode.toUnicode(domain)
Добавлено в v0.6.1domain
-<Строка>
Метод punycode.toUnicode()
конвертирует строку, представляющую имя домена, содержащее Punycode-закодированные символы, в Unicode. Только Punycode-кодированные составляющие имени домена могут быть сконвертированы:
// раскодировка имен домена punycode.toUnicode('xn--maana-pta.com'); // 'mañana.com' punycode.toUnicode('xn----dqo34k.com'); // '☃-⌘.com' punycode.toUnicode('example.com'); // 'example.com'
punycode.ucs2
Добавлено в v 0.7.0punycode.ucs2.decode(string)
Добавлено в v 0.7.0string
-<Строка>
Метод 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]
punycode.ucs2.encode(codePoints)
Добавлено в v 0.7.0codePoints
-<Массив>
Метод punycode.ucs2.encode()
возвращает строку, построенную на массиве числовых кодов значений.
punycode.ucs2.encode([0x61, 0x62, 0x63]); // 'abc' punycode.ucs2.encode([0x1D306]); // '\uD834\uDF06'
punycode.version
Добавлено в v 0.6.1Возвращает строку, определяющую текущую версию Punycode.js.