Punycode Converter
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.
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.
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.
Base45 Encoder & Decoder
Encode text to Base45 and decode Base45 back to text, following RFC 9285, in your browser.
Invisible / Zero-Width Character Detector
Spot NBSPs, zero-width characters, bidi marks, and tabs in pasted text — then clean them out.
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 — entirely in your browser, with 76-character line wrapping on encode.
Base32 Encoder / Decoder
Encode and decode Base32 (RFC 4648), with standard and base32hex variants — useful for TOTP secrets and Crockford-style IDs.
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.