Node.js Punycode用法

本文概述

  • 什么是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'));

输出
Node.js Punycode用法

文章图片
punycode.encode(字符串) 它用于将Unicode符号字符串转换为ASCII符号的Punycode字符串。
文件:punycode_example2.js
punycode = require('punycode'); console.log(punycode.encode('?-?'));

输出
Node.js Punycode用法

文章图片
punycode.toASCII(域) 它用于将表示域名的Unicode字符串转换为Punycode。仅转换域名的非ASCII部分。
文件:punycode_example3.js
punycode = require('punycode'); console.log(punycode.toASCII('ma?ana.com'));

输出
Node.js Punycode用法

文章图片
punycode.toUnicode(域) 它用于将代表域名的Punycode字符串转换为Unicode。仅域名的Punycoded部分被转换。
文件:punycode_example4.js
punycode = require('punycode'); console.log(punycode.toUnicode('xn--maana-pta.com'));

【Node.js Punycode用法】输出
Node.js Punycode用法

文章图片

    推荐阅读