Punycode Converter
Turn internationalized domain names like münchen.de into the xn-- ASCII form that DNS uses, or decode xn-- names back to readable Unicode. Paste whole lists, email addresses or URLs; the conversion runs entirely in your browser.
Label by label
How to use the Punycode Converter
- Paste your domains, email addresses or URLs, one per line (or press Load examples).
- Keep Auto-detect or force Unicode → Punycode or Punycode → Unicode.
- Press Convert. The converted list appears on the right and updates as you type.
- Check the label breakdown and any warnings, such as possible look-alike domains.
- Copy the result or download all lines as a CSV file.
Punycode examples
| Unicode (what people see) | ASCII / Punycode (what DNS stores) |
|---|---|
| münchen.de | xn--mnchen-3ya.de |
| bücher.example | xn--bcher-kva.example |
| straße.de | xn--strae-oqa.de |
| 日本語.jp | xn--wgv71a119e.jp |
| 例え.テスト | xn--r8jz45g.xn--zckzah |
| info@bücher.de | [email protected] |
How the Punycode algorithm works
- Copy the basic characters. All ASCII characters of the label are written first, in order, followed by a hyphen if there were any: münchen gives
mnchen-. - Encode the rest as numbers. The non-ASCII code points are processed from smallest to largest. For each one, the encoder counts how many positions it has to move through the string (a delta) to reach where the character belongs.
- Write each delta as a variable-length number in base 36 with the digits a–z and 0–9, using thresholds that adapt to the data (the bias), so typical text stays short. For münchen the single ü becomes
3ya. - Add the ACE prefix. IDNA puts
xn--in front so software can tell an encoded label from a normal one.
Decoding does the opposite: it reads the deltas and inserts each character back at the right position. The algorithm parameters from RFC 3492 are base 36, tmin 1, tmax 26, skew 38, damp 700, initial bias 72 and initial n 128.
Limits and rules for domain labels
- Each label can be at most 63 characters in its ASCII (xn--) form, and the whole domain at most 253 characters.
- Labels may not start or end with a hyphen, and a hyphen in positions 3 and 4 (like
ab--c) is reserved for prefixes such as xn--. - Registries decide which scripts they allow under each top-level domain, and many forbid mixing scripts within one label.
- For the rest of a URL, non-ASCII path and query characters are percent-encoded, not Punycode-encoded; see the URL Encoder Decoder and URL Parser.
Frequently asked questions
What is Punycode?
Punycode (RFC 3492) is a way to write any Unicode text using only the letters a–z, digits and hyphens. Internationalized domain names (IDNs) use it because DNS only supports ASCII: each non-ASCII label is converted to Punycode and prefixed with xn--, so münchen.de becomes xn--mnchen-3ya.de.
Why does each part of the domain convert separately?
IDNA converts each label (the parts between dots) on its own. ASCII labels such as com or www stay unchanged, and only labels with non-ASCII characters get an xn-- form. That is why the tool shows the domain label by label.
Can I convert email addresses?
Yes, the domain part after @ is converted, for example info@bücher.de becomes [email protected]. The part before @ cannot be Punycode-encoded; a non-ASCII local part requires mail servers that support SMTPUTF8 (RFC 6531).
What is an IDN homograph attack?
Attackers register domains with letters from other scripts that look identical to Latin ones, such as Cyrillic а and р in аррӏе.com (xn--80ak6aa92e.com). Browsers often show such names in xn-- form. This converter warns when a label mixes scripts or consists only of Latin look-alike letters.
How is ß handled?
This tool follows current IDNA2008 / UTS #46 non-transitional processing used by modern browsers: ß is kept, so straße.de becomes xn--strae-oqa.de. Older IDNA2003 software mapped ß to ss instead, which gives strasse.de.
Are uppercase letters allowed?
Domain names are case-insensitive. Unicode labels are lowercased (and normalised with NFKC, which also turns full-width letters and the ideographic full stop 。 into normal ones) before encoding, as IDNA requires.
Does the tool check if the domain exists?
No. It only converts text, entirely offline in your browser, and makes no DNS lookups. Use it to prepare DNS records, certificates, redirects or allowlists that require the ASCII form.