Punycode Encoder
Convert Unicode domain names to Punycode (xn--...) and back, instantly in your browser.
Use the Punycode Encoder
Domain Name Input
Result
Label breakdown
| Original | Result |
|---|
Quick Reference — Common IDN Examples
münchen.de
xn--mnchen-3ya.de
президент.рф
xn--d1abbgf6aiiy.xn--p1ai
日本語.jp
xn--wgv71a309e.jp
café.fr
xn--caf-dma.fr
παράδειγμα.δοκιμή
xn--hxajbheg2az3al.xn--jxalpdlp
مثال.إختبار
xn--mgbh0fb.xn--kgbechtv
Click any example to load it into the encoder.
Summary
Punycode is an encoding scheme defined in RFC 3492 that represents Unicode characters using only the ASCII subset allowed in domain name labels. Internationalized domain names (IDN) such as münchen.de are converted to xn--mnchen-3ya.de so that existing DNS infrastructure can handle them without modification. This tool encodes any Unicode domain to its Punycode form and decodes ACE labels back to human-readable Unicode, entirely in the browser.
How it works
- Paste or type a Unicode domain name (e.g. münchen.de) into the input box.
- Click "Encode to Punycode" to convert each label that contains non-ASCII characters to its xn-- ACE form.
- Click "Decode to Unicode" to convert xn-- ACE labels back to the original Unicode characters.
- Individual labels are processed independently — ASCII-only labels pass through unchanged.
- Copy the result with the Copy button or clear the form to start over.
Use cases
- Verify the Punycode representation of an internationalized domain before DNS registration.
- Debug IDN issues in email headers, TLS certificates, and web applications.
- Convert localized domain names for use in HTTP Host headers or SMTP EHLO commands.
- Cross-check ACE labels returned by WHOIS or DNS resolvers against their Unicode originals.
- Prepare Punycode values for inclusion in configuration files or code strings.
- Validate that a decoded Punycode label round-trips back to the expected Unicode form.