Punycode / IDN Converter
Convert a domain name between its Unicode form and its ASCII-only Punycode (xn--) form, label by label.
Result
Works label by label, so only the parts of a domain that need encoding are changed.
How Punycode and IDN domains work
Convert a domain name between its Unicode form and its ASCII-only Punycode (xn--) form, label by label.
How it works
Internationalized domain names store non-ASCII characters using Punycode, prefixed with xn--, since DNS itself only supports ASCII. Each label (the part between dots) is converted independently.
Common uses
- Check what a Unicode domain actually resolves to at the DNS level.
- Decode an unfamiliar xn-- domain you've encountered to see what it actually says.
Good to know
- Encoding is idempotent for already-ASCII labels — a plain label like "www" is never modified.
- A decoded label that fails to parse is left exactly as typed, rather than showing an error, since a domain may still be mid-edit.
Calculation notes
All conversion runs in your browser; the domain you enter is never sent anywhere.
FAQ
Why do only some labels change?
Only labels containing non-ASCII characters need Punycode encoding — a label that's already plain ASCII, like "www", is left exactly as it is.
Is this specific to domain names?
Punycode itself is a general text encoding, but this tool applies it the way browsers and DNS do: to one domain label at a time.
Can Punycode represent any Unicode domain name?
Yes — any sequence of Unicode code points can be encoded, though the resulting domain must still follow DNS length limits per label.
