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

  1. Enter a Unicode domain to see its Punycode form, or an xn-- domain to see the Unicode form.
  2. Copy the result for DNS records, certificates or configuration.

Examples

  • münchen.de = xn--mnchen-3ya.de
  • bü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_name and 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.