如果想注册域名,或者更加通俗一点“想要买下一个网址”,需要满足一些规范。这些规范就像平时在各种平台注册填写用户名那样。但域名的规范比较官方的说法是“满足LDH Label规范”,具体是在 RFC 5890 中体现。(另外,在1989年的时候有个 RFC 1123,修订了一个规范,允许数字作为域名的开头,在此之前4399.com是不合规的) (www.rfc-editor.org/rfc/rfc5890)
在LDH规范下并无法直接允许emoji或是别的Unicode字符,但现在实际上可以直接买到带有emoji的域名。这就需要用到一种叫做Punycode的规范/算法,可以把任意Unicode字符转换为符合LDH规范的ASCII域名。
Punycode的详细规范在 RFC 3492 (www.rfc-editor.org/rfc/rfc3492) 转换后一般是以“xn—”开头。所以即便购买了一个emoji域名,在浏览器输入这个域名敲回车后,地址栏通常会以“xn—”开头的Punycode展示域名而不会保留emoji本身。
这个“特性”主要是因为担心有人注册包含与ASCII字母相似的“同形异义字”来进行欺骗。
比如可以用西里尔字母 а (U+0430) 来替换拉丁字母 a (U+0061)
аnyamemo.moe
anyamemo.moe
上面这两个域名有一个是我的博客,有一个是“假”的,大家直接在屏幕上能区分吗?
但如果输入到浏览器地址栏并敲击回车,“假”的网站就会被强制转换为Punycode形式。所以说如果平时复制粘贴来访问某网站,最好等跳转完后再确认一下地址栏的url是否符合预期。
我以前也买过带emoji的域名,甚至子域名都是用单个emoji来表示。收藏夹或者自己维护一个域名列表的话还是蛮好看的,但只要点击进去,就会打回原形,就不是那么好看了。而且emoji子域名需要做DNS管理的时候,也得先自己转为Punycode才好绑定,操作上麻烦了一些,也不直观。