國際語言環境指南

國際化網域名稱 (IDN) 支援

國際化網域名稱 (IDN) 使得主機和網域名稱可以使用非英文原生語言名稱。若要使用非英文的主機和網域名稱,請在將這些名稱傳送到解析程式常式 (RFC 3490 中指定的) 之前,先轉換為 ASCII 相容編碼 (ACE) 的編碼名稱。對於不支援 IDN 的系統管理應用程式,系統管理員也需要在檔案系統和應用程式中使用 ACE 名稱。

請參閱 RFC 3490 應用程式中的國際化網域名稱 (IDNA)。

libidnkit(3EXT) 中用於國際化網域名稱的 API,在 UTF-8 或應用程式語言環境的字碼集與 ACE 之間,提供方便的轉換。如果使用了 idn_decodename2(3EXT),您也可以指定任意字碼集名稱做為輸入引數的字碼集。

圖 2–1 IDN 轉換為 ACE

圖例顯示的是非英文名稱轉換為 ASCII 相容編碼字串

圖 2–2 ACE 轉換為 IDN

圖例顯示的是 ASCII 相容編碼字串轉換為非英文名稱

下列表格顯示您可以使用的雙向 iconv 字碼轉換。

表 2–16 iconv 字碼轉換

來源字碼 

目的字碼 

ACE 

ACE-ALLOW-UNASSIGNED 

UTF-8 

UTF-8 

UTF-8 

UTF-8 

ACE 

ACE-ALLOW-UNASSIGNED 

ACE 和 ACE-ALLOW-UNASSIGNED iconv 字碼轉換名稱具有下列含義:

下列是從 ACE 轉換為 UTF-8 的範例,輸入來源是 hostnames.txt 檔案。輸出為標準輸出。

system% iconv -f ACE -t UTF-8 hostnames.txt

專屬的 IDN 轉換公用程式 idnconv(1) 提供 IDN 轉換及許多選項。這些選項可以控制轉換細節。

如需關於 IDN、轉換常式和 iconv 字碼轉換的資訊,請參閱「libidnkit(3LIB) 線上說明手冊」、「idn_decodename(3EXT) 線上說明手冊」、「idn_decodename2(3EXT) 線上說明手冊」、「idn_encodename(3EXT) 線上說明手冊」以及「iconv_en_US.UTF-8(5) 線上說明手冊」。