iT邦幫忙

2022 iThome 鐵人賽

DAY 5
1
Modern Web

這些那些你可能不知道我不知道的Web技術細節系列 第 5

你可能不知道隱藏在Domain裡的編碼punycode

  • 分享至 

  • xImage
  •  

前言

2017年我有幸取得一年免費的「.台灣」域名。自此我也花了一點時間了解什麼是國際化域名(Internationalized Domain Name,IDN)。

在今天你可能也看過不少並非由英文、數字組成的域名,如果是中文或是你的母語,或許會感到一種貼切感,有些又比羅馬拼音更好記。但你知道的嗎?這可能是隱藏在網址列的假象。

國際化域名(Internationalized Domain Name,IDN)

國際化域名(英語:Internationalized Domain Name,縮寫:IDN)又稱特殊字元域名,是指部分或完全使用特殊的文字或非拉丁字母組成的網際網路域名^1

早期的頂級域名只有.com.gov.org.net.int.edu.mil

這些頂級域名最初指的都是美國。後來才開始有了國家級域名如.tw。加上作用後同樣視為頂級域名如.com.tw

隨後也出現了.jobs.info.tv.cc等等為後綴的域名。

域名的功用性,個人感覺某種程度在降低。有些域名的申請越來越容易。

在「.台灣」後綴前,似乎就已經有非英文組成的域名了。譬如:https://中文.tw/ 。

現在,除了.tw的後綴,還可以申請.台灣(繁體)、.台湾(簡體)的後綴。譬如: https://中文.台灣/

國際化域名(IDN)可以提供一個好記、在地化的名字,有時候或許可以提升品牌形象。

國際化域名編碼(英語:Punycode)

不過,早期的DNS其實並不認得這麼多字。實際上這部分瀏覽器事先做了轉換了,像是 https://中文.tw/ ,在我使用的Mozilla Firefox Browser還可以短暫看到https://xn--fiq228c.tw/。是的這就是 https://中文.tw/ 編碼後的結果。透過在瀏覽器網址列輸入xn--fiq228c.tw,同樣可以進入 https://中文.tw/

還有一段時間,將瀏覽器網址列網址複製後,貼到文字編輯器裡也是呈現https://xn--fiq228c.tw/。友善嗎? 同樣的 https://中文.台灣/ 實際上會被轉譯成 https://xn--fiq228c.xn--kpry57d

國際化域名編碼(英語:Punycode)是一種表示Unicode碼和ASCII碼的有限的字符集。例如中文「上海」會被編碼為「fhqz97e」。^2

這種編碼方式稱作「國際化域名編碼(Punycode)」。在URL最大的特徵就是xn--開頭。

以我而言,認為還是英文數字更為容易輸入,基本不用擔心出國後,欲瀏覽某些網站還得先安裝輸入法。這某種程度也是我後來降低國際化域名關注的原因。不過這種域名現在偶爾看到,還是會令我會心一笑。

這就是你可能不知道隱藏在Domain裡的編碼。

參考資料

本文同時發表於我的隨筆


上一篇
你可能不知道HTML Code Number
下一篇
你可能不知道URL的路徑編碼Percent-encoding
系列文
這些那些你可能不知道我不知道的Web技術細節33
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言