Punycode 轉換器
在瀏覽器中將國際化網域標籤於 Unicode 與 RFC 3492 Punycode 之間相互轉換,全程在瀏覽器端執行。
隱私權:你的檔案不會離開裝置,所有處理均在瀏覽器本機完成。
使用方式
- 1.僅貼入網域名稱,並選擇 Unicode 至 ASCII 或 ASCII-Punycode 至 Unicode 的轉換模式。
- 2.逐一轉換並檢查每個標籤;xn-- 字首僅在標籤邊界處新增或移除。
- 3.複製結果後,再以目標序號產生器構或 URL 庫驗證,並檢查是否有相似字元。
關於Punycode 轉換器
Punycode Converter 將國際化網域標籤在可讀的 Unicode 與用於網域名稱系統的 ASCII 格式之間進行轉換。輸入一個網域,例如 bücher.example,即可獲得 xn--bcher-kva.example,或反向轉換以 xn-- 開頭的 ASCII 名稱。每個標籤都會使用 RFC 3492 Bootstring 演算法在本機進行處理。
Punycode 使用基本的 ASCII 字母、數字與連字元來表示 Unicode 編碼點。現有的 ASCII 字元會先被複製,而非 ASCII 值則會被編碼為變長度的差值。該演算法會根據處理的值調整其偏誤。此實現修正了 RFC 常數 base 36、tmin 1、tmax 26、skew 38、damp 700、初始偏誤 72 與初始編碼點 128。
網域標籤在轉換前會先被分隔。Unicode 中常見的全 stops 在 CJK 文字中會被標準化為 ASCII 的點。包含非 ASCII 編碼點的標籤在編碼後會加上 xn-- 字首;一個普通的 ASCII 標籤會被轉為小寫,並保持其他部分不變。解碼模式僅對帶有該字首的標籤進行 Bootstring 解碼。
此範圍刻意比完整的瀏覽器 URL 解析器來得狹窄。該工具不接受方案、路徑、埠、查詢或片段,不執行百分比解碼、不解析 DNS、不測試註冊可用性,也不與序號產生器構通訊。僅貼入網域名稱。空標籤、格式錯誤的數字、無效的 Unicode 基數值以及超過 1,000 碼點的輸入皆會被拒絕。
punycode 並非語言翻譯工具。解碼會顯示 Unicode 這個拼寫所代表的 ASCII 標籤,但不會告訴你如何發音,或它是否屬於與之相似的組織。不同書寫系統的字元可能看起來幾乎一樣。有效的轉換並不能證明一個網域是值得信賴的。
生產 URL 系統通常在 RFC 3492 編碼前,會先應用 Unicode 正規化、語境規則以及 UTS #46 對映。本頁執行的是檔案中說明的原始標籤轉換,並無法保證每個瀏覽器或序號產生器構都會接受相同的結果。如果序號產生器構拒絕某個結果,應遵循該序號產生器構的 IDN 政策,而不是盲目地改變字元。
八個外部測試案例涵蓋拉丁語重音、希臘語、CJK、符號、單標籤與多標籤網域。所有情況皆雙向驗證,包括 bücher、mañana、例子、測試、παράδειγμα 與雪人命令符示例。負面測試涵蓋空標籤與不完整的編碼序列。
當 DNS 或憑證欄位需要 ASCII 時,使用編碼模式;若要檢視 xn-- 名稱,則使用解碼模式。請仔細比對每一標籤、書寫系統與組織,並讓符合標準的 URL 庫處理完整應用網址。請將安全過濾與序號產生器構驗證與此可逆的編碼步驟分離。
此實現針對 Unicode 碼點進行迭代,而非 UTF-16 一半,因此補充字元得以完整保留。算術溢位檢查保護 delta 乘法與權重累積。輸出結果對宣告的原始 Punycode 標準是確定的,複製按鈕僅複製轉換後的網域,不包含方案或尾部斜線。標籤長度限制與序號產生器構政策在轉換後仍適用。一個語法正確的標籤可能過長、被保留、被封鎖或不可用,因此必須由權威消費者驗證最終的 ASCII 名稱。
方法與來源
每個網域標籤皆使用 RFC 3492 Bootstring 常數處理。非基本碼點會以自適應偏移量進行 delta 編碼;帶 xn-- 字首的標籤會解碼為經驗證的 Unicode 基數值。全形點會分隔標籤,並非輸入內容的一部分。
常見問題
- 這是否會檢查網域是否存在?
- 不會。它僅執行本機標籤轉換,不會進行 DNS、WHOIS 或註冊商查詢。
- 為何瀏覽器會產生不同的結果?
- 瀏覽器可能在 Punycode 之前應用 UTS #46 對映、標準化與上下文 IDN 觀念。本頁面僅提供原始 RFC 3492 標籤轉換。
- 解碼後的 Unicode 是否安全可瀏覽?
- 不一定。相似字元可能導致同形攻擊。請獨立驗證組織與書寫系統。
相關工具
- URL 解碼器在你的瀏覽器上即時對 URL 和查詢值進行百分數編碼或解碼 — Unicode 安全,對格式錯誤的輸入會顯示明確錯誤訊息,且不會上傳任何內容。
- Base64 編碼 / 解碼立即在瀏覽器中編碼或解碼 Base64,完整支援 UTF-8 — 表情符號和重音字元都能使用。
- UTF-8 編碼/解碼將 Unicode 文字轉換為正確格式的 UTF-8 位元組,或嚴格解碼位元組序列,不進行靜默取代。
- 文字轉為十六進位將文字編碼為精確的 UTF-8 十六進位字串,支援連續、間隔或 0x 預設輸出格式,並明確顯示 Unicode 替換警告。
- A1Z26 字母數字密碼轉換器把英文字母轉為明確的 A=1 至 Z=26 益智格式,並在不混淆單字邊界的情況下解碼經驗證的數字組。
- AES 線上加密完全在瀏覽器中把文字加密為可攜、具驗證能力的 AES-256-GCM JSON 封裝,或使用密碼解密封裝。
編碼與加密 使用指南
查看全部- Convert Punycode to Unicode: Read xn-- Labels (英文原文)
- Convert Punycode to Text: Decode xn-- Domains Safely (英文原文)
- How to Convert Punycode to ASCII for Domain Names (英文原文)
- Convert an IDN Domain to Punycode: Label-by-Label Steps (英文原文)
- Convert Emoji to Punycode for IDN Domain Labels (英文原文)
- Convert a Domain to Punycode for DNS Compatibility (英文原文)
- Compare Approaches to Use a ROT47 Encoder Decoder (英文原文)
- Rail Fence Cipher Decoder Alternative for Exact Text (英文原文)
- Check Password Strength in Python Without the Regex Trap (英文原文)
- Translate Morse Code to English: A Practical Workflow (英文原文)
- HTML Escape Cheat Sheet: Reserved Characters (英文原文)
- HMAC-SHA256 Tag Generator: Hex and Base64 Guide (英文原文)
- Hill Cipher Decoder Alternative: Skip the Matrix Math (英文原文)
- Convert Hex Format to Text: A Strict UTF-8 Workflow (英文原文)
- Convert File to Base64 for C# Code: Local Browser Steps (英文原文)
- Calculate CRC32 Checksum and Match the 8 Hex Digits (英文原文)
- BCC Checksum API Alternative: Compute Locally (英文原文)
- Caesar Cipher Decoder API Alternative Without Signup (英文原文)
- Binary to Text Encoding: A UTF-8 Guide (英文原文)
- Base64 to Hex Cheat Sheet: RFC 4648 Quick Reference (英文原文)