Skip to content
AZ Tools

Punycode Converter

Convert internationalized domains between Unicode (münchen.de) and Punycode ASCII (xn--mnchen-3ya.de).

Try:

ASCII (Punycode)

xn--mnchen-3ya.de

Unicode

münchen.de

Punycode operates per label (the parts between dots). Labels already in ASCII are passed through unchanged.

How to use

  1. Type or paste a domain in either Unicode or Punycode.
  2. Read off the ASCII and Unicode equivalents side by side.
  3. Copy whichever form your tool/registrar needs.

About this tool

Show

Internationalized Domain Names (IDNs) are stored on the wire as ASCII using Punycode (RFC 3492), but humans usually write them in Unicode. This tool converts in both directions, label by label — labels that are already ASCII pass through unchanged, Unicode labels become xn--…, and xn--… labels become Unicode. Useful for verifying phishing-suspect domains, registering an IDN, or copying a non-ASCII domain into a tool that only accepts ASCII.

Conversion runs per label, meaning per dot-separated segment, because that is how the DNS stores them. A name can mix freely: 日本.example.com encodes only its first label and leaves the rest alone. The xn-- prefix marks a label as encoded, and a label that merely starts with those characters without being valid Punycode is a decoding error rather than a name.

The reason to check a suspicious domain here is that the ASCII form is what actually resolves, and it is the only form that cannot lie to you. Several Cyrillic and Greek letters are visually identical to Latin ones, so a domain that reads as a familiar brand can be a different name entirely; decoding it to xn-- shows two different strings where the eye saw one. Browsers defend against this by displaying the Punycode form when a label mixes scripts, but the rules differ between browsers and a single-script homograph can slip through.

Encoding is not the whole of registering an IDN. Punycode is the transport format; before it applies, a name is normalised and screened by IDNA 2008, which rejects some characters outright and folds others. A string this tool encodes happily can still be refused by a registry, and the two directions are not perfectly symmetric for input that was never a valid domain to begin with.

A label is capped at 63 bytes after encoding, so a handful of non-ASCII characters can exceed the limit even though the visible name is short.

Frequently asked questions

Why are some letters that look identical encoded differently?

That's the whole point of Punycode — and the heart of homograph phishing. The Latin a (U+0061) and Cyrillic а (U+0430) look identical but encode to different ASCII. Pasting a suspect domain into this tool reveals the xn--… form, which makes the difference visible.

Does this validate the domain?

No — it does the Punycode transformation only. Length limits, IDNA2008 rules about disallowed code points, and TLD policies aren't checked. A converted name might still be rejected by a registrar.

Why is one of my labels unchanged?

Punycode only kicks in for labels containing non-ASCII characters. mail.münchen.de becomes mail.xn--mnchen-3ya.de — only the second label needs encoding.

Is the conversion lossless both ways?

Yes — Punycode is a bijective encoding. Encoding then decoding always gets you back to the original (after Unicode normalization). If the round-trip differs, your input had mixed scripts or visual look-alikes that resolved differently.

Related tools