Punycode is an encoding that represents domain labels containing Unicode characters as plain ASCII. For example, café.com becomes xn--caf-dma.com, which lets internationalized domain names (IDN) work in the DNS.
The DNS historically understands only Latin letters, digits and the hyphen. So that domains written in Cyrillic, Chinese or with diacritics can work, the browser converts each label into its ASCII form with an xn-- prefix before sending the query. In the address bar and in the URL the user sees familiar text, while the Punycode version travels over the network.
A few features of the encoding:
This way support for national alphabets arrives without rebuilding the DNS, and domains stay reachable from any browser.