Punycode Converter
Convert between Unicode and Punycode (ACE) for internationalized domain names. Encode/decode IDN domains instantly. Free, 100% in your browser.
Reference
What is Punycode?
Punycode is an encoding syntax defined in RFC 3492 that represents Unicode characters using the limited ASCII character set (a–z, 0–9, hyphen) allowed in DNS domain names. It enables Internationalized Domain Names (IDN) — domain names containing non-ASCII characters like münchen.de, 例え.jp, or مثال.com. The encoded form is prefixed with xn-- (called the ACE prefix). For example, münchen.de becomes xn--mnchen-3ya.de.
How Punycode encoding works
Punycode uses the Bootstring algorithm to encode Unicode code points into a compact ASCII string. It first separates the basic ASCII characters (which pass through unchanged) from non-ASCII characters. The non-ASCII code points are then encoded as a series of delta values using a variable-length integer representation with a bias adaptation mechanism. This produces remarkably short encoded strings — far more efficient than percent-encoding or UTF-8 byte escaping.
When do you need Punycode conversion?
Domain registration — when registering internationalized domain names, registrars require the Punycode (ACE) form. DNS configuration — CNAME, A, and MX records must use the Punycode form since DNS only supports ASCII. Email headers — email addresses with IDN domains need the Punycode version in SMTP headers. Security auditing — Punycode is used in homograph attacks where visually similar Unicode characters impersonate legitimate domains (e.g. аpple.com using Cyrillic 'а'). Decoding Punycode reveals the actual characters.
Privacy
All encoding and decoding runs 100% in your browser. No data is sent to any server.