Punycode and IDN converter

Convert an internationalized domain to its xn-- punycode form and back. Shows each label separately, so you can see which part of the host is encoded.

What punycode is for

DNS carries ASCII. An internationalized domain name is therefore encoded, label by label, into an ASCII form beginning xn--: münchen.example travels as xn--mnchen-3ya.example. Your browser shows the readable form and sends the encoded one.

Per label, not per host

Each dot-separated label is encoded independently, and only the ones that need it. That is why a host can be part-encoded — and why this tool shows the labels separately.

Homograph domains

Several alphabets contain characters that render identically to Latin letters. Cyrillic а and Latin a are different code points that look the same in most fonts, so a domain can be registered that is visually indistinguishable from a familiar one.

Browsers defend against this by showing the raw xn-- form whenever a label mixes scripts. If a domain you were sent renders as punycode in the address bar, that is the browser telling you something — decode it here and look at what the characters actually are.

Occasional email

New tools, when there are new tools

No more than once a month, no tracking pixels in the mail, one-click unsubscribe.