IT notes

IDNA

To encode/decode a domain using “Internationalized Domain Names” $ python >>> x = u'qép.com' >>> x.encode('idna') b'xn--qp-bja.com' >>> x.encode('idna').decode('idna') 'qép.com' >>> x == x.encode('idna').decode('idna') True To prevent non-international domain names containing hyphens from being accidentally interpreted as Punycode, international domain name Punycode sequences have a so-called ASCII Compatible Encoding (ACE) prefix, “xn–”, prepended.[2] Thus the domain name “bücher.tld” would be represented in ASCII as “xn–bcher-kva.tld”.