Convert between Unicode domain names and Punycode (RFC 3492) — essential for international domain names
münchen.de or 日本語.jp if you want to encode to Punycode, or a Punycode domain like xn--mnchen-3ya.de if you want to decode back to Unicode. The tool handles full domain names with multiple labels (separated by dots), processing each label independently — this means www.bücher.de correctly becomes www.xn--bcher-kva.de with only the internationalized label encoded.xn-- prefix format used in DNS, or Decode (Punycode → Unicode) reverses the process to reveal the human-readable domain. The tool shows you an example conversion below the input field — for instance, if you're in Encode mode, it displays 'münchen.de → xn--mnchen-3ya.de' as a helpful reference for the expected format.Punycode is an encoding scheme defined in RFC 3492 that converts Unicode strings into a restricted ASCII character set compatible with the Domain Name System (DNS). The DNS was originally designed in the 1980s when ASCII was the universal standard — it had no mechanism for handling non-Latin characters like Chinese, Arabic, Cyrillic, or accented Latin letters. Punycode solves this by encoding any Unicode string into ASCII using a Bootstring algorithm, prefixing the result with <code>xn--</code> to signal that the label contains internationalized content. For example, the German city <code>münchen.de</code> is encoded as <code>xn--mnchen-3ya.de</code> — DNS servers see only ASCII, but browsers decode it back to display the umlaut. This is the foundation of Internationalized Domain Names (IDNs), which now support domain names in hundreds of scripts worldwide.
Yes, the PivaBox Punycode Converter includes a complete JavaScript implementation of the RFC 3492 Bootstring algorithm, handling all edge cases specified in the standard: the <code>xn--</code> ACE prefix detection and stripping during decode, proper bias adaptation for variable-length integer encoding, the delimiter handling separating basic (ASCII) code points from extended code points within each label, overflow protection to prevent denial-of-service attacks via maliciously long Punycode strings, and multi-label domain support where each dot-separated label is encoded/decoded independently. The implementation handles the full Unicode code point range, meaning it correctly processes CJK characters, emoji, right-to-left scripts (Arabic, Hebrew), and extended Latin characters — not just common European accented letters.
Punycode conversion is essential for several scenarios: (1) <strong>Domain registration</strong> — when registering an international domain (IDN) like <code>café.fr</code>, registrars store it as <code>xn--caf-dma.fr</code> in DNS zone files; understanding the Punycode representation helps verify correct registration. (2) <strong>SSL/TLS certificate issuance</strong> — Certificate Authorities require Punycode for IDN domain validation, and mismatches between Unicode and Punycode forms can cause certificate errors. (3) <strong>Phishing detection</strong> — attackers use Punycode to create lookalike domains (e.g., using Cyrillic 'а' instead of Latin 'a') — a Punycode converter helps security researchers identify and analyze such homograph attacks. (4) <strong>Server configuration</strong> — Nginx and Apache virtual host configurations may require Punycode for IDN ServerName directives. (5) <strong>Email deliverability</strong> — some legacy SMTP servers fail to process internationalized email addresses without Punycode conversion. PivaBox provides this converter entirely free and client-side, so your domain research remains private.