本文概述
- 什么是Punycode
- Node.js中的Punycode
- punycode.decode(字符串)
- punycode.encode(字符串)
- punycode.toASCII(域)
- punycode.toUnicode(域)
什么是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 = 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'));
输出
评论前必须登录!
注册