Punycode Converter
Convert internationalized domains between Unicode (münchen.de) and Punycode ASCII (xn--mnchen-3ya.de).
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
- Type or paste a domain in either Unicode or Punycode.
- Read off the ASCII and Unicode equivalents side by side.
- Copy whichever form your tool/registrar needs.
About this tool
ShowHide
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
Unicode Escape Converter
Encode text to \uXXXX, U+XXXX or HTML entities — and decode any of those back to text. Handles emoji and astral characters.
Developer
Base45 Encoder & Decoder
Encode text to Base45 and decode Base45 back to text, following RFC 9285, in your browser.
Developer
Invisible / Zero-Width Character Detector
Spot NBSPs, zero-width characters, bidi marks, and tabs in pasted text — then clean them out.
Developer
Quoted-Printable Encoder & Decoder
Encode text to MIME Quoted-Printable (RFC 2045) or decode it back — handling =XX escapes, soft line breaks and UTF-8, with 76-character wrapping.
Developer
Base32 Encoder / Decoder
Encode and decode Base32 (RFC 4648), with standard and base32hex variants — useful for TOTP secrets and Crockford-style IDs.
Developer
JWK to PEM Converter (and back)
Turn a JWK or a whole JWKS into PEM public keys and back, with the RFC 7638 thumbprint for each — computed in your browser.
Developer