Punycode, defined in RFC 3492, is a self-proclaimed "Bootstring encoding" of Unicode strings into the limited character set supported by DNS. The encoding is used as part of IDNA, which is a system enabling the use of internationalized domain names in all languages supported by Unicode, where the burden of translation lies entirely with the user application (e.g., web browser).
For example, bücher becomes bcher-kva in Punycode, and therefore the domain name
bücher.ch would be represented as
xn--bcher-kva.ch in IDNA.