Punycode converter: xn-- domains, decoded.
Paste a domain or URL. Unicode names like bücher.de become the xn-- form DNS uses; xn-- names become readable — with a warning when the letters only look Latin, like a Cyrillic “аррӏе”.
What punycode is
The DNS only understands letters, digits and hyphens. Internationalised domain names (IDNs) like münchen.de are stored in an ASCII form: each non-ASCII label is converted with the Punycode algorithm (RFC 3492) and prefixed with xn--. So münchen becomes xn--mnchen-3ya. Browsers convert back and forth automatically; this page shows both forms.
Why look-alike domains matter
Several scripts contain letters that look identical to Latin ones: Cyrillic а е о р с у х and Greek ο ν ρ are different characters from Latin a e o p c y x, o v p. A domain written entirely in Cyrillic, or one that mixes scripts, can therefore read exactly like a familiar brand — a homograph attack. In its ASCII form the difference is obvious: xn--80ak6aa92e.com is not apple.com.
Browsers defend against this by showing the xn-- form when a name looks risky. This tool applies two simple checks to each label — letters from more than one script (Japanese, Chinese and Korean combinations are allowed), and labels made entirely of common Latin look-alikes — and shows what the label appears to spell. It is a quick check, not a complete list of every confusable character.
How the conversion is done
- Unicode → ASCII uses your browser’s own URL parser, which applies UTS #46 processing (lower-casing and character mapping) before Punycode — the same result the address bar sends to DNS.
- ASCII → Unicode uses punycode.js 2.3.1 (MIT), the implementation Node.js has shipped.
Sources & standards
- RFC 3492 — Punycode. rfc-editor.org/rfc/rfc3492
- RFC 5890–5894 — IDNA2008. rfc-editor.org/rfc/rfc5890
- Unicode UTS #46 — IDNA compatibility processing used by browsers. unicode.org/reports/tr46
- Unicode UTS #39 — security mechanisms, mixed-script and confusable detection. unicode.org/reports/tr39
Common questions.
It marks a label that has been converted from Unicode with Punycode. xn--mnchen-3ya is the ASCII form of münchen.
Paste the domain above. Each xn-- label is decoded with the Punycode algorithm from RFC 3492.
Registering a domain that uses letters from another script which look like Latin ones — such as Cyrillic “а” for Latin “a” — so the name reads like a trusted brand. The ASCII xn-- form reveals it.
Browsers display the punycode form when a name mixes scripts or could be confused with another domain, as a protection against look-alike phishing.
More from the toolkit.
About this page. Written and maintained by Sri Murugan Systems, the developer of urlencodedecode.com. Everything on this page runs in your browser; nothing you paste is uploaded. Uses punycode.js 2.3.1 (MIT).