Punycode Converter (IDN)
Paste an internationalized domain name like münchen.de and get its Punycode form xn--mnchen-3ya.de — or paste a xn-- domain and get back the Unicode original. Each input line is processed independently.
Last updated: May 27, 2026
Find this tool useful? Support the project to keep it free!
Buy me a coffeeWhat is Punycode Converter (IDN)?
Domain names on the DNS wire are ASCII-only, but the Internet has long needed names in scripts beyond Latin — Arabic, Chinese, Cyrillic, accented Latin, emoji. Punycode (RFC 3492) is the algorithm that resolves this: it encodes each Unicode label into an ASCII representation prefixed with `xn--`, in a way that can be reversed without ambiguity. The combination of Punycode encoding and a few normalization rules is called IDNA (Internationalized Domain Names in Applications).
This tool implements the Punycode reference algorithm — encoding turns characters outside the basic ASCII range into a base-36 representation with a clever delta encoding; decoding inverts the process. The tool operates per DNS label: only labels that contain non-ASCII characters get the `xn--` prefix on encode, and only labels that start with `xn--` are decoded on decode.
How to Use Punycode Converter (IDN)
Pick the conversion direction: Unicode → Punycode (encode) or Punycode → Unicode (decode).
Paste one domain per line.
Copy the converted result.
Common Use Cases
- Registering an internationalized domain name with a registrar that requires ASCII form.
- Inspecting a suspicious-looking domain to see its Unicode form (helpful for spotting homoglyph attacks).
- Implementing an IDN-aware allowlist or blocklist in code.
- Debugging email addresses with non-ASCII domain parts.
Example Input and Output
A German Unicode domain encodes to its Punycode (xn--) form.
münchen.dexn--mnchen-3ya.dePrivacy
All Punycode encoding and decoding happen in your browser. No content is sent to a server.
Homograph awareness
Decoded labels can resemble Latin letters from other scripts (Cyrillic а vs Latin a). When auditing untrusted URLs, render the decoded label in a context that exposes the underlying script.
Frequently Asked Questions
Does this implement full IDNA2008 / UTS #46?
It implements the Punycode (RFC 3492) layer faithfully but does not apply the IDNA2008 / UTS #46 mapping rules (case folding, NFC normalization, disallowed-character checks). For strict IDNA compliance, normalize the input separately before encoding.
Why is the output the same as the input?
If a label contains only ASCII characters, it does not need Punycode and is left unchanged. The xn-- prefix is added only for labels that contain non-ASCII code points.
Why is my emoji domain failing?
Most TLD registries reject emoji and other code points by registry policy, even though the algorithm itself can encode them. This tool will produce the Punycode regardless — registries make the final call.
Does this send my domain anywhere?
No. All conversion runs locally in your browser.
Related Tools
URL Encoder/Decoder
Encode and decode URL strings with special characters.
JSON URL Encode
URL-encode JSON for use in query strings or POST bodies. Supports encodeURIComponent, encodeURI, and form (x-www-form-urlencoded) modes. Optional minify-before-encode.
JSON URL Decode
URL-decode JSON from query strings or form bodies. Optionally treats + as space (form mode) and pretty-prints the resulting JSON.
Base64 Encoder/Decoder
Encode text to Base64 or decode Base64 to plain text — with URL-safe mode, auto-detect, and size stats.
JSON Encode Online
Escape a string for use as a JSON value. Handles quotes, backslashes, control characters, and optionally Unicode and forward slashes. Copy the ready-to-paste JSON string.
JSON Stringify Online
Stringify JSON with full control over indentation, key sorting, Unicode escaping, and JS-call wrapping. Mirrors JSON.stringify with extra options. Copy the formatted result.

