Punycode is the standard encoding that transforms Unicode domain labels into ASCII-only strings so they can be stored and resolved by the global Domain Name System. When you type a domain that contains non-ASCII characters—such as “bücher.de” or “中文.com”—the browser or application must first convert each label to its Punycode equivalent (for example, “bücher.de” becomes “xn--bcher-kva.de”). This conversion is invisible to users but essential for DNS, which only accepts ASCII characters in the range U+0020 to U+007E. The Punycode Converter tool lets you perform this conversion manually in either direction, directly in your browser, without uploading any data.
Imagine you have just registered the domain “café.example”. Before you can configure DNS records or submit the domain to a registry that does not natively support IDNs, you need the Punycode form. Instead of installing command-line utilities or relying on third-party websites that might log your input, you can use the Punycode Converter. The tool splits the domain at each dot, applies the RFC 3492 algorithm only to the Unicode labels, and prefixes each result with “xn--”. The ASCII suffix “.example” remains untouched. This keeps the process predictable and compliant with the IDNA2008 standard.

When You Need to Convert a Domain to Punycode
You typically need Punycode in three scenarios:
- Registering an internationalized domain name with a registrar that requires the ASCII-compatible form.
- Configuring DNS records (A, MX, CNAME) in systems that do not accept Unicode labels.
- Sharing a domain with colleagues or services that expect plain ASCII input, such as legacy email gateways or internal scripts.
In each case, the Punycode Converter gives you the exact string that DNS resolvers will use, so you can copy it directly into forms or configuration files.
How Punycode Works at the Label Level
Punycode treats each segment of a domain name (each part between dots) as a separate label. Only labels that contain non-ASCII characters are converted; ASCII labels pass through unchanged. The algorithm compresses the Unicode code points into a sequence of ASCII letters and digits, then prefixes the result with “xn--”. This prefix is a reserved string that tells DNS software the label is Punycode-encoded. For example:
| Unicode label | Punycode label |
|---|---|
| café | xn--caf-dma |
| bücher | xn--bcher-kva |
| 中文 | xn--fiq228c |
| example | example (unchanged) |
The conversion is reversible: the same algorithm can decode “xn--fiq228c” back to “中文”. The Punycode Converter handles both directions, so you can inspect or edit domain names in either format.
Convert a Domain to Punycode Step by Step
- Open the Punycode Converter in your browser.
- Paste the full domain name (for example,
café.example) into the input field. Do not include protocol (http://) or path (/page). - Select the direction: “Unicode → ASCII (Punycode)”.
- Click “Convert”. The tool displays each label separately, showing the original Unicode and the resulting Punycode.
- Review the output: the Unicode label “café” becomes “xn--caf-dma”, while “example” remains “example”. The full Punycode domain is
xn--caf-dma.example. - Copy the full Punycode domain (including the unchanged suffix) to your clipboard.
- Paste it into your registrar’s DNS configuration page or any other system that requires ASCII-only domain names.
Common Pitfalls and How to Avoid Them
Mixing up label boundaries is the most frequent mistake. Punycode conversion happens per label, not per domain. If you paste café.example.com, only the “café” label is converted; “example” and “com” stay as-is. Never try to convert the entire string as one unit—always split at the dots.
Another risk is look-alike characters. Some Unicode code points resemble ASCII letters but are distinct. For instance, Cyrillic “а” (U+0430) looks identical to Latin “a” (U+0061). After conversion, both become Punycode, but they resolve to different domains. Always validate the Punycode result with a DNS lookup tool or your registrar’s preview function to ensure it points to the intended site.
Finally, remember that Punycode is case-insensitive. The converter outputs lowercase, but DNS treats “XN--CAF-DMA” and “xn--caf-dma” as identical. Stick to lowercase to avoid confusion in scripts or logs.
How the Punycode Converter Protects Your Privacy
The Punycode Converter runs entirely in the browser using JavaScript. No data is sent to a server, so your domain names remain private. This is especially important when working with internal or unreleased domains that you do not want to expose to third-party services. The tool also does not store cookies or local storage, so each session starts fresh. If you need to convert sensitive domains, you can even disconnect from the internet after loading the page—conversion will still work offline.
Beyond Domains: Other Uses for Punycode Encoding
While domains are the most common use case, Punycode can also encode other identifiers that must fit into ASCII-only systems. Email local parts (the part before the @) can use Punycode if the mail server supports SMTPUTF8. Some certificate authorities accept Punycode-encoded common names in SSL/TLS certificates. The same RFC 3492 algorithm applies, so the Punycode Converter can help you prepare these values as well.
How Punycode Fits into the Broader Encoding Landscape
Punycode is one of many encoding schemes that bridge Unicode and ASCII. If you work with other formats, you might also use Base64 for binary data, URL encoding for query strings, or HTML entities for web content. Each serves a distinct purpose: Base64 handles arbitrary bytes, URL encoding escapes special characters in URLs, and HTML entities represent characters in HTML documents. Punycode is specialized for domain labels and is the only encoding that uses the “xn--” prefix, making it instantly recognizable in DNS contexts.
Validate Your Punycode Conversion
After converting a domain to Punycode, take two minutes to validate it:
- Use a DNS lookup tool (such as
digor an online DNS checker) to query the Punycode domain. Confirm that it resolves to the expected IP address. - Check the registrar’s WHOIS output to ensure the domain is correctly registered in Punycode form.
- Open the domain in a browser to verify that the Unicode version redirects properly to the Punycode version or vice versa, depending on your configuration.
These steps catch errors early and prevent broken links or misconfigured certificates.
More on this topic: Convert an ASCII File to Excel in Minutes Without Coding.