Node.js Punycode

2024 年 8 月 29 日 | 阅读 2 分钟

什么是 Punycode

Punycode 是一种编码语法,用于将 Unicode (UTF-8) 字符字符串转换为基本 ASCII 字符字符串。由于主机名只识别 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.decode(string)

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

文件:punycode_example1.js

输出

Node.js punycode example 1

punycode.encode(string)

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

文件:punycode_example2.js

输出

Node.js punycode example 2

punycode.toASCII(domain)

它用于将表示域名的 Unicode 字符串转换为 Punycode。只转换域名中非 ASCII 部分。

文件:punycode_example3.js

输出

Node.js punycode example 3

punycode.toUnicode(domain)

它用于将表示域名的 Punycode 字符串转换为 Unicode。只转换域名中 Punycode 编码的部分。

文件:punycode_example4.js

输出

Node.js punycode example 4
下一个主题Node.js TTY