📜  Node.js Punycode

📅  最后修改于: 2020-12-24 06:11:40             🧑  作者: Mango

Node.js Punycode

什么是Punycode

的Punycode是其用于Unicode字符的字符基本ASCII字符串的(UTF-8)字符串转换的编码的语法。由于主机名仅理解ASCII字符,因此使用Punycode。它用作国际化域名(IDN或IDNA)。让我们通过一个例子来理解它:

假设您在浏览器中搜索mañana.com ,则您的浏览器(启用了IDNA)首先将其转换为punycode xn--maana-pta.com,因为常规域名中不允许使用字符ñ 。在旧版本中不支持。

Node.js中的Punycode

Punycode.js与Node.js v0.6.2和更高版本捆绑在一起。如果要与其他Node.js版本一起使用,请先使用npm安装punycode模块。您必须使用require(“ punycode”)进行访问。

句法:

punycode = require('punycode');

punycode.decode(字符串)

它用于将ASCII符号的Punycode字符串转换为Unicode符号的字符串。

文件:punycode_example1.js

punycode = require('punycode');
console.log(punycode.decode('maana-pta')); 

输出:

punycode.encode(字符串)

它用于将Unicode符号字符串转换为ASCII符号的Punycode字符串。

文件:punycode_example2.js

punycode = require('punycode');
console.log(punycode.encode('☃-⌘'));

输出:

punycode.toASCII(域)

它用于将代表域名的Unicode字符串转换为Punycode。仅域名的非ASCII部分被转换。

文件:punycode_example3.js

punycode = require('punycode');
console.log(punycode.toASCII('mañana.com')); 

输出:

punycode.toUnicode(域)

它用于将代表域名的Punycode字符串转换为Unicode。仅域名的Punycoded部分被转换。

文件:punycode_example4.js

punycode = require('punycode');
console.log(punycode.toUnicode('xn--maana-pta.com')); 

输出: