Productivity and Utilities

Punycode and IDN Converter

Type a domain name with non-English letters to see its xn-- form, or paste an xn-- name to read it.

Your numbers

Convert

Dots (including the ideographic full stop) separate the labels. No http:// is needed.

Result

ASCII form

xn--bcher-kva.example

1 label was converted.

Labels
2
Converted labels
1
Length of the ASCII form
21

Label by label

LabelConverted
bücherxn--bcher-kva
exampleexample
How this was calculated
  1. A label that is all ASCII is left as it is, in lower case.
  2. Any other label is normalized (NFC) and lower-cased, then written with Punycode (RFC 3492) and given the prefix xn--.
  3. Punycode keeps the ASCII letters and puts a hyphen after them, then adds the other characters as numbers written in base 36 that record where each character goes.
  4. Reading an xn-- label reverses the steps. A label that is not valid Punycode is reported.
  • Domain registries add their own rules about which characters are allowed and how look-alike letters are handled. This tool does the encoding only and does not check that a name can be registered or is safe to visit.

Calculated using SumPanda.com · https://sumpanda.com/punycode-idn-converter/

Results are estimates for general information. Verify important figures before relying on them.

Next step

How to use the punycode and idn converter

  1. Choose To xn-- form to turn a name with accented or non-Latin letters into plain ASCII, or To readable letters to turn an xn-- name back.
  2. Type the domain name. A leading http:// and anything after the first slash are removed for you.
  3. Read the converted name, the number of labels that changed and the label-by-label table.
  4. Copy the ASCII form for use in systems that accept only letters, digits and hyphens.

Formula

a label that is all ASCII stays as it is, in lower case

any other label: normalize (NFC), lower case, encode with Punycode (RFC 3492), add the prefix xn--

Punycode keeps the ASCII letters, adds a hyphen, then writes the other characters as numbers in base 36 with adaptive bias

A name is split at its dots (including the ideographic full stop), converted label by label and joined again. A label may be at most 63 characters once encoded, and the whole name at most 253.

Three names

The German name bücher.example becomes xn--bcher-kva.example. The label bücher keeps its ASCII letters bcher, then a hyphen, and the code kva records that an ü belongs after the first letter. Japanese 日本語.example becomes xn--wgv71a119e.example, and münchen becomes xn--mnchen-3ya.

The Russian word пример becomes xn--e1afmkfd. Decoding goes the other way: xn--bcher-kva.example becomes bücher.example. The results match the Punycode and IDNA codecs in Python and the domain conversion built into Node.js.

Why domains need Punycode

The domain name system was built for letters, digits and hyphens. Internationalized domain names allow other letters by mapping them into that set. Browsers show the readable form, while mail servers, certificates and configuration files often need the xn-- form. Converting by hand is error-prone, which is why a tool helps.

What it does not check

Registries decide which characters a name may use, and some letters in different scripts look alike, which can be used to imitate another site. This tool only does the encoding. It does not check that a name can be registered or that it is safe to visit. See also the URL Encoder and Decoder for percent-encoding and the Text Encoding Fixer for garbled text. The conversion runs in your browser.

Assumptions and limits

  • Only NFC normalization and lower-casing are applied before encoding. The full mapping tables of the IDNA standard are not applied.
  • Names are converted label by label, and empty labels are rejected except for a trailing dot.
  • Length limits of 63 characters per label and 253 for the name are enforced.
  • Nothing is sent from your device.

Formulas reviewed October 10, 2026. See the calculation methodology for how SumPanda rounds, tests and sources its formulas.

Frequently asked questions

What does xn-- mean?

It is the prefix that marks a domain label as Punycode. The part after it is the encoded form of a label that contained non-ASCII letters.

Why is the ASCII part of the label kept?

Punycode copies the basic letters as they are, so a mostly ASCII label stays recognizable. After a hyphen it adds codes that say where the other characters go.

Can I convert a whole URL?

Paste the URL and the page takes the host name and drops the scheme and path. Only the domain is converted, not the path or query string. Use the URL encoder for those.

Why was my name rejected as too long?

Labels are limited to 63 characters and full names to 253 once encoded. Non-Latin text takes more characters in Punycode than it does as written.