Punycode & IDN Converter
Convert internationalized domain names to Punycode (xn--) and back, label by label, right in your browser. The domains you paste stay on your device.
The Punycode / IDN Converter runs entirely in your browser. The domains and URLs you type or paste are converted on your device with a built-in RFC 3492 implementation and are never uploaded to ArrayKit.
Open the URL Encoder / Decoder
About Punycode Converter
The Punycode / IDN Converter turns internationalized domain names into the ASCII form browsers and DNS actually use — and back again. Type a Unicode host such as münchen.de, 例え.テスト, or an emoji domain and it encodes each label with RFC 3492 Punycode, prefixing only the labels that need it with xn--. Switch direction to paste an xn-- domain and read the human-friendly Unicode it stands for. It works label by label, so subdomains, an ASCII TLD, ports, and paths pass straight through untouched. This is handy for spotting homograph phishing, registering an IDN, debugging TLS certificates or email hosts, and checking where a punycoded link really points. Every conversion runs on your device — the domains you paste are never uploaded.
Features
- Two-way conversion: Unicode → ASCII (xn--) and ASCII → Unicode
- Encodes a full domain label by label, adding xn-- only where it is needed
- Passes subdomains, ports, paths, and query strings through untouched
- Hand-rolled RFC 3492 Punycode that matches DNS and browser output exactly
- Supports every script and astral emoji domains via full code-point handling
- Reveals homograph and look-alike domains hidden behind an xn-- prefix
- Clear error when an xn-- label is malformed or truncated
- Runs entirely in your browser — pasted domains never leave your device
How to use the Punycode Converter
- Keep 'Unicode → ASCII' selected to encode an internationalized domain
- Type or paste a domain such as münchen.de or 例え.テスト
- Copy the ASCII xn-- domain from the output pane
- Switch to 'ASCII → Unicode' and paste an xn-- domain to read it back
Example
Input
münchen.de
Output
xn--mnchen-3ya.de
Only the non-ASCII 'münchen' label becomes xn--mnchen-3ya; the .de TLD is left alone.
Common errors & troubleshooting
- The whole domain got an xn-- prefix, including the .com. — Each label is encoded on its own. Pure-ASCII labels like com or www are left unchanged, so only labels with non-ASCII characters gain an xn-- prefix.
- Decoding an xn-- domain shows 'invalid digit' or a similar error. — The Punycode payload after xn-- is malformed or truncated. Paste the complete label exactly as it appears; xn-- labels use only letters a–z and digits 0–9.
- Two domains look identical on screen but resolve differently. — That is a homograph attack — Latin and Cyrillic letters can look the same. Convert both to ASCII to compare their real xn-- forms and tell them apart.
- A port or path seems to have vanished after converting. — Only the host is transformed. Include the full string (host:port/path) and the port, path, and query are passed through unchanged.
Frequently asked questions
- What is Punycode and why do domains use it?
- Punycode (RFC 3492) represents Unicode domain labels using only the ASCII letters, digits, and hyphen that DNS allows. Internationalized labels are encoded and prefixed with xn--, so münchen.de travels over the network as xn--mnchen-3ya.de.
- What does the xn-- prefix on a domain mean?
- xn-- is the IDNA 'ACE' (ASCII-Compatible Encoding) prefix. It marks a label whose remaining characters are a Punycode-encoded Unicode string, telling browsers and resolvers to decode it back to the original letters for display.
- Why is only part of my domain converted to xn--?
- Conversion happens label by label. A label made only of ASCII characters, like www or com, already fits DNS and is left as-is; only labels containing non-ASCII characters are Punycode-encoded and prefixed with xn--.
- Can this help me spot homograph phishing domains?
- Yes. Look-alike letters from different scripts can make a fake domain appear genuine. Encoding it to ASCII exposes the distinct xn-- form, so аpple.com written with a Cyrillic 'а' no longer looks like apple.com.
- Does the converter lowercase my domain or apply IDNA nameprep?
- No. It performs pure Punycode transcoding and preserves your labels exactly, so encoding and then decoding returns the original text. It does not apply IDNA case-folding, normalization, or validation.
- Does it handle emoji domains and URLs with a port or path?
- Yes. Emoji and other astral characters encode correctly — 💩.la becomes xn--ls8h.la — and any scheme, port, path, or query in a full URL is passed through while only the host labels are converted.
Related tools
All ArrayKit tools