編碼 | 解碼 | 壓縮

> 國際 | 網域 | Unicode <

// Punycode - 將 Unicode 編碼為 ASCII 的國際網域工具

[UNICODE]

支援 Unicode

支援編碼任意 Unicode 字元,包括表情符號與特殊文字。

[DNS]

相容 DNS

產生僅含 ASCII 的網域名稱,可直接用於 DNS 基礎建設。

[STANDARD]

RFC 3492

針對國際化網域名稱(IDN)的官方 IETF 標準。

>> 技術說明

Punycode 的運作原理:

Punycode 是一種 bootstring 編碼,用於將 Unicode 字串轉換為 ASCII。它會將 ASCII 與非 ASCII 字元分開,然後僅使用 ASCII 編碼 Unicode 字元的位置與數值。

範例:

"münchen" → xn--mnchen-3ya

為什麼要使用 Punycode:

  • >國際化網域名稱(IDN)
  • >DNS 系統中的 Unicode
  • >包含 Unicode 的電子郵件地址
  • >與舊系統的相容性
  • >跨系統互通性

>> 常見問題

什麼是 Punycode?

Punycode 是一種編碼語法,用來將 Unicode 字元轉換為 ASCII,以便在國際化網域名稱(IDN)中使用。透過它,網域名稱可以包含非 ASCII 字元。

為什麼 Punycode 會使用 "xn--" 字首?

"xn--" 字首用來標示該網域標籤是使用 Punycode 編碼。它代表「ASCII Compatible Encoding」,用來避免與一般 ASCII 網域混淆。

網域名稱可以使用表情符號嗎?

可以,表情符號可以透過 Punycode 進行編碼。例如 😊.com 會被編碼為 xn--e28h.com。但並非所有註冊商都支援表情符號網域。

Punycode 只用在網域上嗎?

Punycode 主要是為網域名稱設計,但也能將任意 Unicode 文字編碼成 ASCII。常見用於 IDN 與國際化電子郵件地址。

其他語言

Punycode Encoder Decoder — Base64.sh

Punycode 編碼解碼器 | 國際網域工具

免費線上 Punycode 編碼與解碼工具。將包含 Unicode 字元的國際網域名稱(IDN)轉換為相容 ASCII 的編碼格式。

分享:

X Facebook LinkedIn Reddit

參考資料

我們如何確保結果正確

我們使用以下自動化測試驗證此工具。下方保留測試案例的原始名稱,方便查看實際斷言及重現。

驗證方法
逐個比較國際化域名標籤的 ASCII 和 Unicode 雙向結果,包含中文、重音和 emoji。
對比依據
Node.js node:url 的 domainToASCII / domainToUnicode。
驗證範圍
覆蓋列出的標籤;不宣稱實現了全部 UTS #46 映射和域名註冊規則。
測試原始碼與案例(點選檔名檢視)

這些測試涵蓋列出的樣本和邊界,不代表所有輸入都已證明正確。往返測試和使用同一依賴套件的檢查,不屬於獨立交叉驗證。