Internationalized Domain Names (IDNs) allow domain names to contain characters from scripts other than the basic Latin alphabet — including Arabic, Chinese, Cyrillic, emoji, and accented European letters. Since the DNS system only supports ASCII characters, IDNs are encoded into a special ASCII-compatible format called Punycode.
Punycode is an encoding algorithm that converts Unicode strings to ASCII-compatible representations. Each non-ASCII label in a domain is prefixed with xn-- and followed by the Punycode representation. For example, münchen.de (German for Munich) becomes xn--mnchen-3ya.de in Punycode. Modern browsers automatically display the Unicode version in the address bar while using the Punycode version for DNS resolution.
Yes. Emoji domains like 🍕.ws must be Punycode-encoded as xn--vi8h.ws before they can be used in DNS and email systems.
IDN homograph attacks use look-alike characters (e.g., Cyrillic а vs Latin a) to spoof legitimate domains. Browsers apply various mitigations, and ICANN maintains policies to prevent abuse.