中文域名DNS解析指向空間問題

2012-03-13 7:14 am
使用的域名商是Godaddy DNS服務,為什麼加入中文域名的時候,一直顯示錯誤信息,有經驗的大大幫忙解決下,謝了...

回答 (2)

2012-03-14 4:44 am
✔ 最佳答案
中文域名在伺服器的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
參考: ifreesite
2012-03-13 5:19 pm
1. 錯誤信息應該提及那裡出錯,請把錯誤信息顯示出來。
2. 另外,你是否直接輸入中文?如果是,那就不可以。你需要輸入puny code才對。
3. 如何把中文域名轉為punycode:http://www.charset.org/punycode.php

希望幫到你!


圖片參考:http://icepacific.com/images/yahooknowledge/signature_icdsoft.jpg


收錄日期: 2021-04-24 09:59:29
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20120312000051KK00875

檢視 Wayback Machine 備份