What is Punycode?
Punycode is the encoding scheme (RFC 3492) that allows internationalized domain names containing non-ASCII characters — like München.de or 日本語.jp — to be represented in the DNS system, which only natively supports ASCII. The algorithm converts Unicode labels into an ASCII-compatible encoding (ACE) prefixed with xn--. For example, münchen.de becomes xn--mnchen-3ya.de. Browsers automatically convert between the two — when you type a Unicode domain, the browser sends the Punycode version to DNS resolvers. This tool lets you do the conversion manually.
How to use this tool
- 1 Choose "Unicode → Punycode" and enter a Unicode domain name (e.g. münchen.de) — one domain per line.
- 2 The Punycode equivalent (xn--…) appears instantly in the output.
- 3 To go the other way, switch to "Punycode → Unicode" and paste the ACE form.
- 4 Click an example in the table to load it instantly.
Frequently asked questions
Why does the output start with xn--?
xn-- is the ACE (ASCII-Compatible Encoding) prefix defined by RFC 3490. It signals that the label is Punycode-encoded. Only labels containing non-ASCII characters get the prefix; purely ASCII labels are left unchanged.
Does Punycode apply to the whole domain or just one part?
It applies per-label (the parts separated by dots). So münchen.de → xn--mnchen-3ya.de: only the münchen part is encoded; .de stays as-is. Each label is encoded independently.
Can I use Unicode domains in my browser?
Yes. Modern browsers accept Unicode domains in the address bar and convert them to Punycode automatically before the DNS lookup. This tool lets you see what the converted form looks like.
Is Punycode safe?
Punycode itself is just encoding, but IDN homograph attacks use it: a domain that looks like google.com but uses Cyrillic г (looks like Latin g) becomes a completely different Punycode domain. Browsers show warnings for mixed-script domains. Always verify URLs carefully.
Is my data sent to a server?
No. The Punycode encode/decode algorithm (RFC 3492) is implemented in pure JavaScript in your browser. Nothing is uploaded.