Search tools

Find a tool by name or what it does.

Punycode Converter

Encode internationalized domains to xn-- ASCII and decode them back to Unicode.

Converted live as you type. Nothing leaves your browser.

Direction

Detected direction: Encode to xn-- ASCII.

Options

Lowercase normalizes the domain the way host names are compared. Turn it off to keep the original case.

Converted domain
xn--mnchen-3ya.de
ASCII (xn--) form
Label breakdown(2)
  • münchen
    xn--mnchen-3ya
    Encoded
  • de
    Unchanged

How to convert Punycode domains online

  1. Enter a domain

    Type or paste a domain, either a Unicode name like münchen.de or an xn-- ASCII name like xn--mnchen-3ya.de.

  2. Pick a direction

    Leave direction on Auto-detect, or choose Encode to convert Unicode to xn-- ASCII or Decode to convert it back.

  3. Read the breakdown

    The converted domain updates instantly, with each label listed so you can see which parts were encoded, decoded, or left unchanged.

  4. Copy the result

    Click Copy to clipboard to take the converted domain into your config, certificate request, or browser.

Why use this tool

Both directions on one screen

Encode Unicode domains to xn-- ASCII and decode xn-- hosts back to readable Unicode, switching between them with a single control.

Per-label breakdown

The domain is split on its dots and each label is shown on its own, so you can see exactly which parts changed and which stayed plain ASCII.

Auto-detect direction

The converter reads your input and chooses encode or decode for you, so pasting an xn-- host or a Unicode name just works.

Handles the tricky cases

Pure ASCII labels pass through untouched, trailing dots and empty labels are preserved, and malformed xn-- labels are flagged instead of silently dropped.

Correct by the standard

Encoding follows the Punycode algorithm used by internationalized domain names, including characters beyond the Basic Multilingual Plane.

Runs entirely in your browser

Everything happens on your device; nothing is uploaded.

About this tool

Punycode is the encoding behind internationalized domain names. It rewrites a label that contains non-ASCII characters, like münchen or 例え, into a plain ASCII form prefixed with xn-- that the domain name system can route, then lets software turn it back into readable Unicode. This converter does both directions on a full domain: it splits the name on its dots, transforms only the labels that need it, and leaves pure ASCII labels untouched.

Use it to see what a Unicode address such as café.example becomes on the wire, to decode an xn-- host you found in a certificate, log line, or email header, or to check that a domain round-trips cleanly. Auto-detect reads the input and chooses encode or decode for you, and the optional lowercase step normalizes the name the way registrars and resolvers treat it. Each label is listed on its own so you can see which parts changed. To take apart a whole address see the URL parser, for percent-encoding of paths and query strings use the URL encoder, and for character-level escapes see Unicode escape.

Everything is computed on your device as you type, so the domains you paste, including anything internal or unreleased, never leave the browser. Malformed xn-- labels are flagged inline rather than silently dropped, and a trailing dot or an empty label is preserved so the output matches your input exactly.

Frequently asked questions

What does this Punycode converter do?
It converts domains between Unicode and the xn-- ASCII form used by the domain name system. In Encode mode it turns a name like münchen.de into xn--mnchen-3ya.de. In Decode mode it turns xn-- labels back into readable Unicode. Either way the domain is split into labels so you can see exactly which parts were transformed.
What is Punycode and the xn-- prefix?
Punycode is the algorithm that represents Unicode text using only the ASCII letters, digits, and hyphen that domain names allow. When a label contains non-ASCII characters, it is Punycode-encoded and given the prefix xn-- so resolvers can recognise it as an internationalized domain name label.
How does auto-detect decide the direction?
If the input contains any non-ASCII characters, it is treated as Unicode and encoded to xn-- ASCII. If the input is all ASCII and any label starts with xn--, it is decoded back to Unicode. You can always override this by choosing Encode or Decode explicitly.
Which labels get converted?
Only labels that need it. When encoding, a label is changed and prefixed with xn-- only if it contains non-ASCII characters, so ordinary ASCII labels like com or de are left exactly as they are. When decoding, only labels that start with xn-- are touched. Trailing dots and empty labels are preserved.
What happens with an invalid xn-- domain?
A label that starts with xn-- but does not contain a valid Punycode sequence is flagged inline as invalid, and its original text is kept in the output rather than dropped. The breakdown marks which label failed so you can fix it.
Is my data uploaded anywhere?
No. Everything runs in your browser; nothing is sent to a server. The domains you enter are processed on your device and are never uploaded, stored, or logged.

Related tools