1.获取中文域名的punycode编码
Punycode是一个根据RFC 3492标准而制定的编码系统,主要用于把域名从地方语言所采用的Unicode编码转换成为可用于DNS系统的编码。
(1)在线转码:
http://tools.jb51.net/punycode/
(2)浏览器转码:
将域名输入到网址栏,复制后得到编码后的域名
(3)python脚本转码:
import sys
import re
def encoding(str): # 对传入的字符串编码
result = re.match(r'[\da-zA-Z-]+$', str)
if result: # 若均为字符,直接返回
return str
else: # 若有非法字符,进行punycode编码后返回
return 'xn--'+str.encode('punycode').decode('utf-8')
def parse(url): # 返回解析后的域名
urls = url.split('.')
encoded_urls = map(encoding, urls)
return '.'.join(encoded_urls)
def main():
if len(sys.argv) > 1:
domain = sys.argv[1]
else:
domain = input('输入域名:')
result = parse(domain)
print(result)
input()
if __name__ == '__main__':
main()
2.在freenom申请域名
(1)登录(注册)freenom账号后搜索域名,搜索时带上后缀,freenom可用的免费域名后缀有.tk、.ml、.ga、.cf、.gq
这里以域名"爱我中华.tk”为例,转punycode编码为"xn–fiqw8j43o0vp.tk",搜索转码后的域名:
(2)按步骤完成域名申请
(3)设置重定向测试能否正常访问
这里以新华网(http://www.news.cn/)为例:
访问之前申请的域名,可以重定向至目标网站,说明以punycode编码申请中文域名是可行的。
3.举一反三
既然中文域名可以通过这种方法申请,那么其他文字甚至是特殊字符(比如emoji)应该也可以通过这种方法申请域名。