實用工具

Punycode 轉換器(中文網域)

在 中国.公司、münchen.de 這類國際化網域名稱和 xn-- 開頭的 Punycode 之間互相轉換,並揪出仿冒網域。

瀏覽器本機執行網路1692
免費

輸入

0 B

結果

結果會顯示在這裡。

DNS 只傳輸 ASCII,所以 münchen.de 或 中国.公司 這類網域名稱,實際上是以 xn--mnchen-3ya.de 和 xn--fiqs8s.xn--55qx5d 的形式傳遞。設定 DNS 紀錄、TLS 憑證、nginx server_name 或電子郵件時會用到 xn-- 形式;日誌裡出現 xn-- 網域時,又需要可讀的形式。這個轉換器以 punycode.js(Node.js 內建多年的實作)逐一標籤雙向轉換。對於網址和電子郵件地址,只轉換網域部分,路徑、查詢字串和 @ 前面的部分都維持不變。

它是怎麼運作的

  • 每行一個網域、網址或電子郵件地址;自動模式下,含有 xn-- 標籤的行轉成 Unicode,其他行轉成 Punycode。
  • 編碼前會轉成小寫並正規化,全形句號 。 會被當成點,這和瀏覽器處理手動輸入網域的方式相同。
  • 以下情況會發出警告:標籤超過 63 個字元、整個網域超過 253 個字元,以及同一標籤混用拉丁字母和西里爾或希臘字母。
  • 純 ASCII 網域原樣通過,網址中的 IPv6 位址也不做處理。

你的資料去了哪裡

哪也沒去。本工具完全在你的瀏覽器裡執行:你貼上的文字由頁面處理,不會傳輸到任何伺服器,也不會寫進任何紀錄。

本工具免費且免登入,執行結果只存在於你目前的頁面裡,不會被儲存到任何地方。

它要花多少

本工具完全免費,不需要登入,也不消耗點數。

常見問題

什麼是同形異義字攻擊?
註冊一個看起來像知名網站、卻使用其他文字字元的網域——例如用西里爾字母 а 取代拉丁字母 a 的 аpple.com。在螢幕上兩者幾乎一模一樣,Punycode 卻不同:xn--pple-43d.com。這個工具會標出混用拉丁字母與西里爾或希臘字母的標籤,這是最常見的手法。瀏覽器遇到可疑網域時也會顯示 xn-- 形式。
這和網址編碼是同一回事嗎?
不是。網址編碼(百分比編碼)用於路徑和查詢字串:ü 會變成 %C3%BC。Punycode 只用於網域名稱,網址裡只有主機部分會用它轉換。網址的其餘部分請使用本站的網址編碼工具。
這是完整的 IDNA 2008 / UTS #46 處理嗎?
不完全是。它會轉小寫、做 Unicode 正規化(NFC)並處理全形句號 。,足以涵蓋大家實際註冊的網域。但它沒有實作 UTS #46 的全部對應,也不會拒絕註冊管理機構可能拒絕的每個字元,所以在這裡能轉換的名稱,註冊商仍可能不接受。

背後的開源專案

本工具執行在 mathiasbynens/punycode.js 之上,以 MIT 授權發布。如果你需要在自己的程式裡實作同樣的能力,直接用這個函式庫。

mathiasbynens/punycode.js

也常被稱作

  • punycode 轉換
  • 中文網域轉碼
  • idn 網域轉換
  • xn-- 解碼
  • punycode 轉中文
  • 仿冒網域檢查