Punycode Converter
Chuyển tên miền IDN ↔ Punycode (xn--)
Punycode Converter — Unicode ↔ xn-- Domain Encoder
This Punycode converter instantly encodes internationalized domain names (IDN) containing non-ASCII characters into their xn-- ASCII-Compatible Encoding (ACE) form, and decodes Punycode strings back to human-readable Unicode — all in strict accordance with RFC 3492. Whether you are registering a domain in Arabic, Chinese, Vietnamese, or any other script, the tool gives you the exact DNS-safe representation required by global registries and resolvers. Paste one domain or a list, convert in one click, and copy the result directly into your DNS control panel or code.
Benefits
Punycode bridges the gap between user-friendly Unicode domain names and the ASCII-only infrastructure that underpins the global DNS. Key advantages of using this tool include:
- RFC 3492 compliance: the conversion algorithm matches ICANN specifications exactly, so results are accepted by every major domain registry.
- Bidirectional conversion: encode Unicode to xn-- and decode xn-- back to Unicode from the same interface without switching tools.
- Multi-label domain support: each dot-separated label is encoded independently, preserving the full domain structure (e.g., münchen.de → xn--mnchen-3ya.de).
- Bulk processing: enter multiple domains, one per line, and receive a matching list of converted results in a single pass.
- Client-side only: all conversion happens in your browser; no domain names are transmitted to any server.
Use cases
The Punycode converter is useful across a wide range of technical and business scenarios:
- IDN domain registration: verify the exact xn-- string before submitting a registration order to a domain registrar that requires the ACE form.
- DNS debugging: confirm that DNS records reference the correct Punycode label when an internationalized domain fails to resolve.
- Application development: developers building email validators, URL parsers, or authentication systems need accurate Unicode-to-Punycode mapping at the label level.
- Homograph attack detection: security researchers compare the Punycode output of visually similar domains to identify phishing attempts that exploit look-alike Unicode characters.
- Email and certificate validation: S/MIME certificates and SMTP servers often require the ACE form; use this tool to prepare the correct string.
How to use
Converting a domain name takes three steps:
- Step 1 — Enter the domain: paste a Unicode domain (e.g., münchen.de) or a Punycode string (e.g., xn--mnchen-3ya.de) into the input field. For bulk conversion, place each domain on its own line.
- Step 2 — Choose direction: select Unicode → Punycode to encode, or Punycode → Unicode to decode.
- Step 3 — Copy the result: click Convert; the output appears immediately below. Use the Copy button to transfer it to your clipboard.
The tool processes each label between dots separately, so full domains with multiple segments are handled correctly without any manual splitting.
Frequently asked questions
What is the difference between Punycode and IDNA? Punycode (RFC 3492) is the encoding algorithm that maps Unicode code points to ASCII characters. IDNA (Internationalized Domain Names in Applications) is the broader framework — defined in RFC 5891 — that specifies how and when to apply Punycode within domain labels.
Why does my browser show the Unicode form but my DNS tool shows xn--? Modern browsers automatically decode Punycode to Unicode for display, while lower-level DNS utilities and many APIs operate on the raw ACE form. Both representations refer to the same domain — the difference is purely in how each tool chooses to render it.
Can I use the xn-- output directly in a CNAME or MX record? Yes. The Punycode strings produced by this tool are fully compatible with A, AAAA, CNAME, and MX records and can be pasted directly into any DNS management interface or zone file.
Does Punycode encoding change for the same input every time? No. Punycode is a deterministic algorithm — the same Unicode input always produces the same xn-- output, making it safe to cache or store the encoded form in databases and configuration files.