Punycode / IDN converter
What is a Punycode Converter?
Domain names were originally limited to ASCII letters, digits and hyphens. Internationalized domain names (IDNs) like münchen.de or 例え.jp work by converting each non-ASCII label into Punycode, an ASCII representation prefixed with xn--. This converter translates in both directions.
How to use it
- Enter a Unicode domain to see its Punycode form, or an
xn--domain to see the Unicode form. - Copy the result for DNS records, certificates or configuration.
Examples
münchen.de=xn--mnchen-3ya.debücher.example=xn--bcher-kva.example☕.us=xn--53h.us
Only labels that contain non-ASCII characters are converted; ASCII labels such as .de stay unchanged.
Where you need Punycode
- DNS zone files: records must use the ASCII form.
- TLS certificates: CSRs and SANs list the xn-- form.
- Server configuration: nginx
server_nameand Apache virtual hosts. - Email addresses on IDN domains, for systems without SMTPUTF8 support.
Homograph attacks
Some characters from different scripts look identical. A domain written with a Cyrillic а instead of a Latin a can look like a well-known brand but is a completely different domain. Converting a suspicious link to Punycode reveals the trick: if a familiar-looking domain becomes xn--..., it contains non-Latin characters. Browsers display Punycode in the address bar when they detect mixed scripts for this reason.
Frequently Asked Questions
What does xn-- mean in a domain?
It marks a label encoded in Punycode, meaning the original label contains non-ASCII characters.
Do I need Punycode for DNS records?
Yes. DNS stores the ASCII form, so internationalized labels must be entered as xn-- Punycode.
How can Punycode help detect phishing?
Converting a domain shows whether it secretly contains look-alike characters from other alphabets.
Is the conversion the same for every label?
Each dot-separated label is converted separately, and only labels with non-ASCII characters change.
Are uppercase letters preserved in Punycode?
No. Domain names are case-insensitive, so labels are normalised, typically to lowercase, before conversion. The result is the same for München and münchen.