NodeJS - url.domainToASCII() 方法



URL 类的 NodeJS url.domainToASCII() 方法返回 Punycode,该代码将域转换并表示为 ASCII 字符。此方法执行与 url.domainToUnicode() 方法相反的运算。

Punycode 是一种字符编码方案,用于转换国际化域名。包含非 ASCII 字符的域名将使用 Punycode 转换为 ASCII。例如,考虑日语字符“こんにちは”,其含义是英语中的“Hello”。因此,“こんにちは.com”(相当于“Hello.com”)由 Punycode 表示为 ASCII 字符串“xn--28j2a3ar1p.com”

语法

以下是类 URL 的 NodeJS url.domainToASCII() 方法的语法

URL.domainToASCII(domain)

参数

  • domain:此参数指定将由 Punycode 转换的字符串。

返回值

此方法返回域的 Punycode ASCII 序列化。

如果我们传递给 NodeJS url.domainToASCII() 方法的域包含非 ASCII 字符,它将使用 Punycode 方案将这些字符转换为 ASCII。

在以下示例中,我们将包含非 ASCII 字符的域字符串传递给 NodeJS url.domainToASCII() 方法。


const url = require('node:url');

let domain = url.domainToASCII('ñewyork.com');
console.log(domain);

输出

在执行上述程序时,它将生成以下输出

xn--ewyork-vwa.com

如果我们将国际化域传递给 domainToASCII() 方法,Punycode 将转换并将它们表示为 ASCII 字符。

在以下示例中,我们将带有日语字符的域字符串传递给 domainToASCII() 方法。


const url = require('node:url');

let domain = url.domainToASCII('你好.com');
console.log(domain);

输出

正如我们在输出中看到的,Punycode 将转换日语字符并将它们表示为 ASCII 字符串。

xn--6qq79v.com

如果我们将无效的域名传递给 domainToASCII() 方法,它将返回一个空字符串。

在以下示例中,我们尝试将无效域传递给 domainTOASCII() 方法。


const url = require('node:url');

let domain = url.domainToASCII('xn--iñvalid.com');
console.log(domain);

输出

在执行上述程序时,它将生成以下输出

// 返回一个空字符串