📅  最后修改于: 2020-12-24 06:11:40             🧑  作者: Mango
的Punycode是其用于Unicode字符的字符基本ASCII字符串的(UTF-8)字符串转换的编码的语法。由于主机名仅理解ASCII字符,因此使用Punycode。它用作国际化域名(IDN或IDNA)。让我们通过一个例子来理解它:
假设您在浏览器中搜索mañana.com ,则您的浏览器(启用了IDNA)首先将其转换为punycode xn--maana-pta.com,因为常规域名中不允许使用字符ñ 。在旧版本中不支持。
Punycode.js与Node.js v0.6.2和更高版本捆绑在一起。如果要与其他Node.js版本一起使用,请先使用npm安装punycode模块。您必须使用require(“ punycode”)进行访问。
句法:
punycode = require('punycode');
它用于将ASCII符号的Punycode字符串转换为Unicode符号的字符串。
文件:punycode_example1.js
punycode = require('punycode');
console.log(punycode.decode('maana-pta'));
输出:
它用于将Unicode符号字符串转换为ASCII符号的Punycode字符串。
文件:punycode_example2.js
punycode = require('punycode');
console.log(punycode.encode('☃-⌘'));
输出:
它用于将代表域名的Unicode字符串转换为Punycode。仅域名的非ASCII部分被转换。
文件:punycode_example3.js
punycode = require('punycode');
console.log(punycode.toASCII('mañana.com'));
输出:
它用于将代表域名的Punycode字符串转换为Unicode。仅域名的Punycoded部分被转换。
文件:punycode_example4.js
punycode = require('punycode');
console.log(punycode.toUnicode('xn--maana-pta.com'));
输出: