Skip to content

Punycode Converter

A domain with an accent or a non-Latin letter travels through DNS as plain letters starting with xn--. Paste a name either way and see the other form, label by label, with a clear message when something cannot be converted.

  • münchen.dexn--mnchen-3ya.de
  • bücher.examplexn--bcher-kva.example
  • 日本語.jpxn--wgv71a119e.jp

How it works

  1. Choose the direction: readable name to xn--, or xn-- to readable name.
  2. Paste one domain name per line.
  3. Read the converted name on each line; an invalid label is explained instead of guessed.
  4. Copy the results into your DNS panel, redirect rule or spreadsheet.

What people use it for

  • Setting up an accented domain

    Get the xn-- name your registrar or DNS panel asks for.

  • Reading a suspicious link

    Decode an xn-- address to see which letters it really contains before you trust it.

  • Writing redirect rules

    Turn a list of readable domains into the ASCII form that server configuration files expect.

Questions

What is Punycode?
A way to write any Unicode label with only letters, digits and hyphens (RFC 3492). The label münchen becomes mnchen-3ya, and a domain label carries the prefix xn-- to say so: xn--mnchen-3ya.de. The conversion is reversible, and each label of the name is converted on its own, so the dots stay where they are.
Is this the full IDNA standard?
No. This tool applies Punycode to each label after turning it into lower case and composed form (NFC). It does not apply the whole IDNA mapping table (some characters are mapped to others by browsers and registries), and it does not check whether a registry allows the name. Ordinary lower-case names such as münchen.de, 日本語.jp or café.fr convert exactly as browsers do.
Why was my label refused?
A DNS label is limited to 63 characters, counting the xn-- prefix. A long label in a script that needs many characters can go over. A name with an empty label (two dots in a row) is refused as well, and a text that is not valid Punycode after xn-- is reported on its own line.
Is anything sent anywhere?
No. The conversion runs in your browser, and up to 500 names of the pasted text are read. Nothing is stored.