ToolLineup

Punycode Converter

This Punycode converter translates internationalised domain names between their Unicode form and the ASCII form that DNS actually carries. Domain lookups have always been ASCII-only, so a name like münchen.de is encoded to xn--mnchen-3ya.de before it goes anywhere near a name server — the conversion your browser performs silently every time you type a non-ASCII address. Each label between the dots is converted independently, and labels that are already ASCII are left completely untouched. Seeing both forms side by side matters for security as well as curiosity: a domain that looks entirely familiar in its Unicode form can decode to something quite different.

How it works

Domain names travel through DNS as ASCII, so an internationalised name is encoded into an ASCII form beginning xn--. This converts a domain in either direction, label by label, leaving labels that are already ASCII untouched.

This is how a browser turns münchen.de into xn--mnchen-3ya.de before looking it up. Seeing both forms matters for security too: a domain that looks familiar in Unicode may be an entirely different name once decoded.

Everything runs in your browser — nothing you paste is sent to a server.

Input
münchen.de or xn--mnchen-3ya.de
Result

This domain is already ASCII — nothing to convert.

Why domains are converted at all

DNS was specified when ASCII was the only thing anyone encoded, and its wire format still carries only ASCII. Rather than change DNS, the solution was to encode Unicode names into ASCII at the edges — browsers encode before looking up, and decode again for display.

How the encoding works

Punycode keeps the ASCII characters of a label as they are, appends a hyphen, and then encodes the non-ASCII characters as a compact sequence describing which characters to insert and where. That is why bücher becomes bcher-kva: the ASCII letters survive intact, and kva encodes "insert ü after position 1".

Homograph attacks

Cyrillic а and Latin a are different characters that render identically in most typefaces. A domain can therefore look exactly like a familiar one while being a completely different name. Decoding the ASCII form is the reliable way to tell — which is why browsers show the xn-- form for domains that mix alphabets suspiciously.

Frequently asked questions

What is Punycode?

The encoding that represents Unicode domain names in ASCII. DNS carries only ASCII, so münchen.de travels as xn--mnchen-3ya.de and is converted back for display.

What does the xn-- prefix mean?

It marks a label as Punycode-encoded. A label without it is ordinary ASCII and is left exactly as it is.

Why is each part converted separately?

Because the encoding operates per label — the parts between the dots. A domain can mix encoded and plain labels, which is why example.münchen.de encodes only its middle label.

Why does this matter for security?

Different alphabets contain characters that look identical to Latin ones. A domain that appears to read "apple" may use a Cyrillic character and decode to a completely different name — decoding it is how you tell.

Does it work with emoji domains?

Yes. Emoji are just Unicode characters, so a domain containing one converts in both directions like any other.

Is my domain sent anywhere?

No. The conversion is pure arithmetic and runs entirely in your browser — no DNS lookup is performed.

Related tools