✔ 最佳答案
中文域名在伺服器的DNS解析前需要轉碼為PunyCode,才可以被DNS系統接納的。
中文域名為什麼要轉碼為punycode!?
Punycode是一個根據RFC 3492標准而制定的編碼系統,主要用於把域名從地方語言所采用Unicode編碼轉換成為可用於DNS系統的編碼。"中文域名"後綴不被標准的解析服務器支持,需轉化為punycode碼進行解析。什麼是PunyCode?
英文域名在IIS或Apache中的虛擬主機設置,可以直接使用英文域名,如ifreesite.com。
中文域名在IIS或Apache中應如何設置主機頭呢?如"線上工具.com",
答案是:在進行設置之前要先把中文域名轉化成為PunyCode編碼,然後在伺服器空間設置裡面填上中文域名所對應的PunyCode編碼(xn--fhq66fz8o695a.com)便可。 新的國際化域名的標准在網域名稱編碼上,為了保留向下兼容性及不影響現有的應用程序協議,因此將多國語言域名轉成ASCII編碼,而這種編碼稱為『punycode』。 因為經過 Nameprep 處理過的國際化域名是以 Unicode 序列的形式表示的。但現有的 DNS 系統只支持用 ASCII字符表示的域名,所以要對 Unicode 序列進行 ACE (ASCII-compatible encoding) 編碼,把 Unicode序列表示的域名轉換成 ASCII 字符串表示的ACE 域名。 PunyCode是一種專為國際化域名而設計的高效ACE 編碼方式。它可以在Unicode序列和ASCII 字符串之間進行唯一的和可逆的轉換。轉換的過程中,Unicode 序列中的ASCII字符保持不變,國際化字符則用字母和數字來表示。它的實質是一種用數量有限的基本字元(字母和數字)來唯一地表示大字元集(Unicode)中的字元的通用算法。域名中的字元,包括 ASCII 碼和 Unicode 碼,都是作為整數進行處理。 PunyCode則是將一個經過Nameprep 處理過的IDN,從一個8位的編碼的形式轉換為7位編碼的形式。目前Internet DNS一向是7位ASCII編碼的環境,經過這個PunyCode轉碼程序,便將IDN從一個8 位的IDN轉換為與現有DNS環境兼容的編碼。 在DNS服務器方面,需要將IDN以PunyCode的編碼形式來設定。因為PunyCode本身就是一種7位的編碼,與ASCII編碼完全兼容,所以可適用設定於目前所有可用的DNS版本, 也就是說可以不需要為了設定PunyCode而重新安裝BIND新版本。但是若是需要使用DNAME指令來設定資源記錄(Resource Record),則需先提升為BIND9的版本。什麼是Nameprep?
Nameprep 是“A Stringprep Profile for Internationalized Domain Names (IDN)”,它描述了如何准備一個多語種域名,包括對一個域名字段進行映射、正規化以及禁止性過濾等等操作。
中文域名轉換PunyCode碼網址︰
http://www.ifreesite.com/punycode