Punycode Converter

Convert Unicode domain names to Punycode (IDN) and back. Follows RFC 3492 / IDNA. 100% client-side.

🌐 Non-ASCII
Punycode (ASCII)
xn--mnchen-3ya.de

🔗 URL preview

Unicode:https://münchen.de
Punycode:https://xn--mnchen-3ya.de

🏷 Label breakdown (2 labels)

#1
Unicode
münchen
Punycode
xn--mnchen-3ya
14c
#2
Unicode
de
Punycode
de
ASCII2c

📋 Common IDN Examples

UnicodePunycodeLanguage
German umlaut
French accent
Russian Cyrillic
Chinese
Hindi Devanagari
Greek
Already ASCII
Click any value to load it into the converter.
🔒 100% private: All conversion happens in your browser. Follows RFC 3492 (Punycode) and RFC 5891 (IDNA2008).

About Punycode Converter

The Domain Name System (DNS) only supports ASCII characters (a–z, 0–9, hyphen). To support international domain names (IDN) with non-ASCII characters — Hindi, Chinese, Arabic, Cyrillic, accented Latin, emoji — the Internet uses Punycode, an encoding scheme defined in RFC 3492. Punycode encodes Unicode strings into ASCII by prefixing with "xn--" and appending an encoded form of the non-ASCII part. For example, "münchen.de" becomes "xn--mnchen-3ya.de". Registrars, browsers, and DNS servers use this transparently. This tool converts between Unicode and Punycode — useful for testing IDN configurations, understanding how international domains work, and debugging DNS issues.

How It Works

  1. Choose a direction: Unicode → Punycode or Punycode → Unicode.
  2. Paste a domain or label (e.g., "münchen.de" or "xn--mnchen-3ya.de").
  3. See the converted output, plus the per-label breakdown.
  4. Copy the result with one click.

✨ Key Features

  • ✓Unicode → Punycode (IDN encoding)
  • ✓Punycode → Unicode (IDN decoding)
  • ✓Full RFC 3492 implementation
  • ✓RFC 5891 IDNA2008 label validation
  • ✓Per-label breakdown (subdomain, domain, TLD)
  • ✓Show ASCII-compatible (xn--) form
  • ✓Show Unicode form
  • ✓Validate domain labels
  • ✓Copy any field
  • ✓Handle multiple labels (sub.example.com)
  • ✓100% client-side — no data sent to any server

🎯 Common Use Cases

  • →Converting internationalized domain names for DNS config
  • →Understanding how IDN domains work
  • →Debugging IDN certificate issues (SSL/TLS)
  • →Verifying that a Punycode domain matches a Unicode one
  • →Preparing domain names for registration
  • →Learning RFC 3492 and IDNA
  • →Checking if a domain is an IDN (starts with xn--)
  • →Working with international email addresses

💡 Advanced Tips & Pro Insights

  • ▸Punycode labels always start with "xn--". If you see a domain starting with "xn--", it is a Punycode-encoded IDN.
  • ▸Only the non-ASCII labels are encoded. "example.com" stays as-is; "münchen.de" → "xn--mnchen-3ya.de" (only the "münchen" label is encoded).
  • ▸Punycode is case-insensitive but the case of the ASCII part can be preserved via a flag (RFC 3492 "case annotation"). Most implementations use lowercase.
  • ▸The maximum length of a DNS label is 63 bytes after Punycode encoding. If the encoded form exceeds 63 chars, the domain is invalid.
  • ▸Homograph attacks: attackers register visually similar domains (e.g., "аpple.com" using Cyrillic "а") that look like legitimate ones. Modern browsers display the Unicode form to users for safety.
  • ▸Email addresses can also use IDN (SMTPUTF8 extension), but support is limited. Most email still requires ASCII domains.

Frequently Asked Questions

Is this Punycode converter free?▾
Yes, this Punycode converter is completely free with no signup, email, or usage limits.
Is my data safe?▾
Yes, 100% safe. All conversion happens in your browser. Your domains are never uploaded to any server.
What is Punycode?▾
Punycode is a way to represent Unicode strings using only ASCII characters. It is defined in RFC 3492. Punycode-encoded strings start with "xn--" and are used by DNS to support internationalized domain names.
What is an IDN?▾
An IDN (Internationalized Domain Name) is a domain name that contains non-ASCII characters, like "münchen.de" or "नमस्ते.com". IDNs are encoded to Punycode for DNS resolution.
Why does "xn--" mean?▾
"xn--" is the ASCII Compatible Encoding (ACE) prefix used to indicate that a domain label is Punycode-encoded. Any label starting with "xn--" is a Punycode-encoded IDN.
Can I use Unicode directly in a browser?▾
Yes, modern browsers automatically convert Unicode domains to Punycode behind the scenes. If you type "münchen.de" the browser converts it to "xn--mnchen-3ya.de" for the DNS lookup.
Are IDN domains supported everywhere?▾
Not universally. Modern browsers support IDN, but some older systems, email servers, and APIs reject Punycode or Unicode domains. Always test your specific use case.
What is a homograph attack?▾
A homograph attack registers a domain that looks identical or very similar to a legitimate one using different Unicode characters (e.g., Cyrillic "а" looks like Latin "a"). Browsers display the Unicode form to help users spot suspicious domains.