Если мы наберем в Firefox или хромПочему/как делает браузер решить ☃.net идет в xn--n3h.net
Это подводит нас к
Что является зеркалом unicodesnowmanforyou.com
Что я не понимаю, по каким правилам юникодный снеговик может декодировать до xn--n3h
, он не выглядит как utf-8 или urlencoding.
Я думаю, что нашел подсказку в то время как отводе вокруг в Python3, потому что:
>>> '☃'.encode('punycode')
b'n3h'
Но я до сих пор не понимает xn--
части. Как интернационализируются доменные имена, каков стандарт и где этот материал документирован?
Ах, хорошо. Теперь я понимаю, что 'xn -' не является кодировкой, это спецификация. Кажется, он называется «префикс ACE» для любых поисковиков, которые находят этот пост. – wim
Да, 'xn -' является префиксом ** ASCII совместимого кодирования (ACE) **, чтобы система DNS знала, что остальная часть метки закодирована в кодировке punycode. В вашем примере 'n3h' представляет собой кодированную в стиле Punycode форму' ☃'. –