IDN Converter
Convert internationalized domain names between Unicode and ASCII (punycode) forms.
- Runs locally in your browser
- No upload required
Try it
Supported formats
Privacy
Runs entirely in your browser. Your input is never uploaded, stored, or sent to a third party.
ASCII: xn--bcher-kva.example · Unicode: bücher.example
How it works
- Split the domain into labels on the dot.
- Encoded each non-ASCII label as punycode and prefixed it with `xn--`.
- Decoded any existing `xn--` label back to Unicode for the human-readable form.
- Punycode (RFC 3492) is the ASCII-compatible encoding used by IDNA; an encoded label always starts with `xn--`.
- IDNA also applies Unicode normalisation, case folding and script checks; this tool performs the punycode step and leaves full IDNA validation to the registrar or resolver.
Methodology
- Split on the dot into labels.
- Encode each non-ASCII label with the RFC 3492 punycode algorithm and prefix `xn--`.
- Decode any `xn--` label back to Unicode.
- Report both the ASCII and Unicode forms with a per-label breakdown.
Usage
- Enter a domain name in Unicode (bücher.example) or ASCII (xn--bcher-kva.example).
- Read both forms and the per-label breakdown.
- Use the ASCII form in DNS records and the Unicode form for display.
Examples
These are examples, not current values: they use fixed inputs, while the interactive tool computes live results in your browser.
German umlaut
{
"domain": "bücher.example"
}Punycode input
{
"domain": "xn--bcher-kva.example"
}Plain ASCII domain
{
"domain": "example.com"
}Limitations
Unicode names on an ASCII DNS
The DNS protocol is ASCII-only, so internationalized domain names are encoded with Punycode (RFC 3492) and prefixed with `xn--`. `bücher.example` becomes `xn--bcher-kva.example`.
Punycode is only one part of IDNA, which also normalises Unicode and enforces script and bidi rules. This tool converts the punycode step so you can put the right name in a DNS record or certificate.
Frequently asked questions
- Why does my domain become xn--?
- DNS only carries ASCII, so a non-ASCII label is punycode-encoded and prefixed with `xn--`. That is the ASCII-compatible form of an internationalized name.
- Is the punycode form what I see in the browser?
- Browsers usually show the Unicode form, but the DNS query and certificates use the `xn--` ASCII form.
Sources
Send feedback
Tell us if this tool helped, report a problem, or suggest a tool. Only the message you type is sent — never the input you used in the tool.
Was this tool useful?
Prefer to write to us directly? See the contact page.