• Node.js Video Tutorials

NodeJS - url.domainToASCII() Method



The NodeJS url.domainToASCII() method of class URL returns Punycode which converts and represents the domain as ASCII characters. This method performs the inverse operation to url.domainToUnicode() method.

The Punycode is a character encoding scheme that is used to convert internationalized domain names. The domain name containing non-ASCII characters will be converted into ASCII using Punycode. For example, consider the Japanese character ‘こんにちは’, the meaning is ‘Hello’ in English. So, the ‘こんにちは.com’ (equivalent to ‘Hello.com’) is represented by Punycode as the ASCII string ‘xn--28j2a3ar1p.com’

Syntax

Following is the syntax of the NodeJS url.domainToASCII() method of class URL

URL.domainToASCII(domain)

Parameters

  • domain: This parameter specifies the string that will be converted by the Punycode.

Return Value

This method returns the Punycode ASCII serialization of the domain.

Example

If the domain we pass to the NodeJS url.domainToASCII() method contains non-ASCII characters, it will convert those characters into ASCII using the Punycode scheme.

In the following example, we are passing a domain string with non-ASCII characters to the NodeJS url.domainToASCII() method.

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

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

Output

On executing the above program, it will generate the following output

xn--ewyork-vwa.com

Example

If we pass an internationalized domain to the domainToASCII() method, the Punycode will convert and represent them as ASCII characters.

In the following example, we are passing a domain string with Japanese characters to the domainToASCII() method.

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

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

Output

As we can see in the output, the Punycode will convert the Japanese characters and represent them as an ASCII string.

xn--6qq79v.com

Example

If we pass an invalid domain name to the domainToASCII() method, it returns an empty string.

In the following example, we are trying to pass an invalid domain to the domainTOASCII() method.

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

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

Output

On executing the above program, it will generate the following output

//Returns an empty string
nodejs_url_module.htm
Advertisements