Punycode#

穩定性:0 - 已棄用

原始碼: lib/punycode.js

Node.js 中內建的 punycode 模組版本已棄用。 在 Node.js 的未來主要版本中,此模組將會移除。目前依賴 punycode 模組的使用者應改用使用者提供的 Punycode.js 模組。如需基於 punycode 的 URL 編碼,請參閱 url.domainToASCII 或更通用的 WHATWG URL API

punycode 模組是 Punycode.js 模組的內建版本。可使用下列方式存取

const punycode = require('punycode'); 

Punycode 是一種由 RFC 3492 定義的字元編碼方案,主要用於國際化網域名稱。由於 URL 中的主機名稱僅限於 ASCII 字元,因此包含非 ASCII 字元的網域名稱必須使用 Punycode 方案轉換為 ASCII。例如,轉換為英文單字 'example' 的日文漢字為 '例'。國際化網域名稱 '例.com'(等同於 'example.com')會由 Punycode 表示為 ASCII 字串 'xn--fsq.com'

punycode 模組提供 Punycode 標準的簡單實作。

punycode 模組是 Node.js 使用的第三方相依性,並提供給開發人員使用。對模組的修正或其他修改必須轉向 Punycode.js 專案。

punycode.decode(string)#

punycode.decode() 方法會將僅包含 ASCII 字元的 Punycode 字串轉換成等效的 Unicode 碼點字串。

punycode.decode('maana-pta'); // 'mañana'
punycode.decode('--dqo34k'); // '☃-⌘' 

punycode.encode(字串)#

punycode.encode() 方法會將 Unicode 碼點字串轉換成僅包含 ASCII 字元的 Punycode 字串。

punycode.encode('mañana'); // 'maana-pta'
punycode.encode('☃-⌘'); // '--dqo34k' 

punycode.toASCII(網域)#

punycode.toASCII() 方法會將代表國際化網域名稱的 Unicode 字串轉換成 Punycode。只有網域名稱中非 ASCII 的部分會被轉換。對已僅包含 ASCII 字元的字串呼叫 punycode.toASCII() 不會產生任何效果。

// encode domain names
punycode.toASCII('mañana.com');  // 'xn--maana-pta.com'
punycode.toASCII('☃-⌘.com');   // 'xn----dqo34k.com'
punycode.toASCII('example.com'); // 'example.com' 

punycode.toUnicode(網域)#

punycode.toUnicode() 方法會將代表網域名稱的字串(其中包含 Punycode 編碼字元)轉換成 Unicode。只有網域名稱中 Punycode 編碼的部分會被轉換。

// decode domain names
punycode.toUnicode('xn--maana-pta.com'); // 'mañana.com'
punycode.toUnicode('xn----dqo34k.com');  // '☃-⌘.com'
punycode.toUnicode('example.com');       // 'example.com' 

punycode.ucs2#

punycode.ucs2.decode(字串)#

punycode.ucs2.decode() 方法會傳回一個陣列,其中包含字串中每個 Unicode 符號的數字碼點值。

punycode.ucs2.decode('abc'); // [0x61, 0x62, 0x63]
// surrogate pair for U+1D306 tetragram for centre:
punycode.ucs2.decode('\uD834\uDF06'); // [0x1D306] 

punycode.ucs2.encode(codePoints)#

punycode.ucs2.encode() 方法會根據數字碼點值的陣列傳回字串。

punycode.ucs2.encode([0x61, 0x62, 0x63]); // 'abc'
punycode.ucs2.encode([0x1D306]); // '\uD834\uDF06' 

punycode.version#

傳回識別目前 Punycode.js 版本號碼的字串。