Skip to content
Tezmy Tools

Punycode Converter

Convert international domain names to xn-- Punycode and back

Runs in your browser. Nothing is uploaded.

About the Punycode Converter

Domain names can only use letters a to z, digits and hyphens on the wire, so a name such as bücher.de or 日本語.jp is sent as an ASCII form that starts with xn--. That form is called Punycode. This tool converts in both directions. Paste one domain, email address or web address per line and only the host part is converted. Switch to Raw Punycode if you want to encode or decode a plain word without the xn-- prefix. The work is done on your device, and the tool does not look anything up on the internet.

Updated September 2026

How to use the Punycode Converter

  1. 1Choose Domain names, or Raw Punycode for plain text.
  2. 2Pick the direction: Unicode to xn--, or xn-- back to Unicode.
  3. 3Type or paste one entry per line.
  4. 4Read the result on the right, and any error listed below it.
  5. 5Copy the result, or press 'Use result as input' to check the round trip.

Why domain names need Punycode

The domain name system was designed in the 1980s for ASCII only. When internationalised domain names arrived, engineers chose to keep DNS as it was and translate names at the edge: your browser shows bücher.de, but it asks DNS for xn--bcher-kva.de. Email servers and certificates do the same, so you often meet the xn-- form in certificate lists, server logs and DNS panels.

Each label between the dots is converted on its own. Only labels with non-ASCII characters get the prefix, which is why 日本語.jp becomes xn--wgv71a119e.jp while the jp part is untouched.

When to use each mode

  • Unicode to xn--: when a DNS panel, certificate request or configuration file wants the ASCII form.
  • xn-- to Unicode: when you find an unreadable name in a log or an email header and want to see what it really says.
  • Raw Punycode: when you work on the algorithm itself, or need the encoded part only, for example for a test.

Safety tips

Some characters in other alphabets look the same as Latin letters. A link that shows a familiar brand could lead to a different name entirely. Decoding an xn-- domain shows what the characters are, but it does not tell you whether the site is safe. The URL Encoder and Decoder handles percent escapes in paths and queries, which are a different system from Punycode.

Works anywhere

The converter runs in your browser on phones and computers. Nothing you type is sent to a server, and there is no lookup of the domain. Paste a list of names, one per line, and convert them all at once. Domain work involves other encodings. The URL Encoder & Decoder handles percent codes in paths, the Base64 Encoder & Decoder deals with binary text, and the Slug Generator makes tidy ASCII addresses from titles.

Features

  • Domain names, emails and web addresses, with only the host changed
  • Follows RFC 3492 Punycode, checked against the sample strings in the standard
  • Non-ASCII labels are lowercased and normalised with Unicode NFKC before encoding
  • Accepts full-width and ideographic dots as label separators
  • Raw mode for words without the xn-- prefix
  • Per-line errors that explain what is wrong

Frequently asked questions

What is Punycode?

Punycode is a way of writing any Unicode text using only letters, digits and hyphens. Browsers and DNS use it so that names in other alphabets can travel through systems built for ASCII. The prefix xn-- tells software that a label is Punycode.

How is bücher.de written in Punycode?

The label bücher becomes xn--bcher-kva, so the full domain is xn--bcher-kva.de. The plain letters stay in front, then a hyphen, then a short code that says where the ü goes.

Can I use this to check if a domain is a lookalike?

Yes, to a degree. Paste a suspicious xn-- domain and see the real characters it stands for. Lookalike scams often swap a Latin letter for a Cyrillic one, and the xn-- form exposes that. The tool does not judge the domain or contact it, so use your own care.

Does it follow the full IDNA rules?

It follows Punycode exactly and does the common cleanup of lowercasing and NFKC normalisation. It does not apply every IDNA 2008 restriction, so it will not refuse a label a registry would reject. A registrar is the final authority on what can be registered.

Why does my ASCII domain stay the same?

Labels made only of ASCII characters do not need Punycode, so they are left exactly as typed. Only labels with characters outside ASCII become xn-- labels.

What do the errors mean?

When decoding, an error means the text after xn-- is not valid Punycode: it has a character that is not allowed, ends too early, or decodes to a character that does not exist. Fix or re-copy that line, and the other lines still convert.

Related tools