IDN Punycode Converter: Free Online Tool

IDN Punycode Converter

Convert internationalized domain names (IDN) with Unicode characters to their Punycode (ACE) representation and vice versa.

An IDN Punycode converter turns an internationalized domain name, such as münchen.de, into its ASCII form (xn--mnchen-3ya.de) and back again. Paste a domain, click one of two buttons, and copy the result. It is built for site owners, developers and SEOs who need the exact form that DNS panels, server settings and redirects expect.

What Are IDN and Punycode?

An internationalized domain name (IDN) is a domain that contains characters outside basic ASCII, such as accented letters, Cyrillic, Arabic, Chinese or Japanese script. Punycode is the encoding that makes those names usable on the Domain Name System, which only understands letters, digits and hyphens.

IDN vs Punycode: what is the difference?

The IDN is what people read and type, like bücher.de. The Punycode version is what software sends over the network, like xn--bcher-kva.de. They are the same domain written two ways. The technical name for the Punycode form is the ASCII-compatible encoding (ACE), and the xn-- prefix marks a label as encoded.

How does Punycode encoding work?

Punycode, defined in RFC 3492, keeps the ASCII characters of a label as they are, adds a hyphen, then appends a short code that records which non-ASCII characters belong at which positions. In münchen, the ASCII letters "mnchen" stay, and the code "3ya" stores the ü and where it sits. The xn-- prefix goes in front.

Each label between dots is converted on its own. That is why the extension .de stays unchanged and only the label with special characters becomes xn-- text. A label made only of non-ASCII characters, such as Japanese, has no ASCII part, so its code follows the prefix directly.

How to Use the IDN Punycode Converter

You can convert a domain in under ten seconds with one text field and two buttons. Follow these steps.

  1. Click the field labeled Domain Name (Unicode or Punycode) and type or paste your domain, for example münchen.de or xn--mnchen-3ya.de.
  2. Paste a full web address if that is what you have. The converter drops the https:// part and anything after the first slash, question mark or hash, so only the host name is converted.
  3. Click Unicode → Punycode to encode a readable name into its xn-- form.
  4. Click Punycode → Unicode to decode an xn-- name back into readable characters.
  5. Read the result panel, which shows your input on one side and the output on the other, each labeled with its format.
  6. Click Copy Result to copy the output, then paste it into your DNS panel, config file or spreadsheet.

If you click a button with an empty field, you see the message "Please enter a domain name." Type a domain and click again.

Worked Example: Converting a German Domain Both Ways

A realistic case is a shop that owns bücher.de and needs the ASCII form for a server setting. Enter bücher.de and click Unicode → Punycode. The output is xn--bcher-kva.de.

Here is how to read it. The letters "bcher" are the ASCII part, "kva" is the code for the ü, and xn-- flags the label as encoded. The .de label had no special characters, so it is untouched.

Subdomains are handled label by label. Entering shop.bücher.de gives shop.xn--bcher-kva.de, because only the second label needed encoding. To check your work, paste xn--bcher-kva.de and click Punycode → Unicode. You get bücher.de back.

Scripts without any ASCII letters follow the same logic. The domain 日本語.jp becomes xn--wgv71a119e.jp. Finally, a plain name like example.com returns the message "No conversion needed or domain is already in the target format," because there is nothing to encode.

How to Read and Act on the Results

A successful result is an output that differs from your input in the expected way: xn-- text when encoding, readable characters when decoding. What you do next depends on what you see.

  • Output starts with xn-- after encoding: this is the ASCII form. Use it in DNS records, server and virtual host settings, SSL certificate requests and any tool that rejects non-ASCII input.
  • Readable characters after decoding: use this version in documents, reports, ads and anything people will read.
  • "No conversion needed" after encoding: your domain is already pure ASCII. If you expected special characters, check that you typed them and did not paste a lookalike plain letter.
  • "No conversion needed" after decoding: either the input has no xn-- labels, or the Punycode is invalid. Re-copy the string and look for a missing character, since one wrong letter breaks the decoding.

Once you have the ASCII form, verify that it works. Run it through a DNS lookup to confirm the records resolve, or use domain to IP to see where it points.

Who Needs an IDN Punycode Converter?

Anyone who handles non-English domain names will meet Punycode sooner or later. Common situations include:

  • Webmasters adding a domain like müller.de to hosting, a CDN or a mail system that only accepts ASCII.
  • SEOs auditing redirects, canonical tags, sitemaps and hreflang entries, where the host must match exactly across files.
  • Developers writing allow lists, CORS rules or tests that compare hostnames in one consistent form.
  • Security teams checking suspicious links. A name that looks like a familiar brand but encodes to xn-- uses non-Latin characters, a common trick in lookalike (homograph) phishing.
  • Brand owners who want to register the local-language spelling of a name and need to know its ASCII twin. You can test registration status with a domain availability checker and weigh options in a domain extension comparison.

Best Practices and Common Mistakes

Most Punycode problems come from mixing the two forms or converting more than the host name. These habits prevent them.

Keep both forms in your records

Write the Unicode and the Punycode version side by side in your documentation. When a log file shows xn--bcher-kva.de, you will recognize it instantly instead of hunting for the match.

Convert only the host name

Punycode applies to domain labels, not to paths or query strings. Non-ASCII characters in a URL path use a different method called percent-encoding. Pasting a full address into this converter is safe, but only the host is processed, so the path will not appear in the output.

Do not expect the browser bar to match

Browsers decide for themselves whether to display the readable or the encoded form. Some show Punycode when a name mixes scripts, as a safeguard against lookalike domains. Firefox even has an advanced preference, network.IDN_show_punycode, that forces the encoded form. What you see in the address bar is not a sign that the domain is broken.

Check the extension supports your characters

Each registry decides which characters it allows. A name that converts cleanly may still be refused at registration if the extension does not permit those letters. Check the rules of your chosen extension before you commit.

Mind the length limits

Under DNS rules, a single label can be at most 63 characters and a full name at most 253. Encoded names are longer than they look, since non-ASCII text expands. A long name in Chinese or Arabic can hit the label limit sooner than expected, so keep names short.

Look at the rest of the domain's profile

After converting, you may want to see how established a name is. A domain age checker shows registration and expiry dates, and the Domain Tools category has more utilities for the same job.

Limitations to Keep in Mind

This converter changes the text of a name and nothing else. It does not confirm that a domain is registered, that it resolves, or that its extension accepts the characters you used. It converts one domain at a time, so a list needs to be done name by name.

Input is lowercased before conversion, which is what you want for domain names since they are not case sensitive. The tool does not apply the full set of normalization and validation rules some registries enforce, so a name that converts here can still be rejected elsewhere. Treat the output as the correct encoding of what you typed, then confirm it with your registrar or DNS provider.

Convert Your Domain Now

Whether you are setting up a local-language website or debugging an xn-- string in a log, the quickest path is to paste the name into the field above, choose a direction and copy the result. Try an example such as münchen.de first to see both forms, then convert your own domain.

Frequently Asked Questions

What is the difference between IDN and Punycode?
An IDN is a domain written with non-ASCII characters, while Punycode is its ASCII encoding. For example, bücher.de is the IDN and xn--bcher-kva.de is the Punycode form. They point to the same domain, and this converter switches between them in either direction.
How do I convert a Unicode domain to Punycode?
Type or paste the domain into the Domain Name field and click Unicode → Punycode. Entering münchen.de returns xn--mnchen-3ya.de. Then click Copy Result to use the encoded name in DNS panels, server settings or redirect rules.
Can I convert Punycode back to a readable domain?
Yes. Paste a name containing xn-- labels and click Punycode → Unicode. For example, xn--bcher-kva.de becomes bücher.de. If the Punycode has a typo, the converter cannot decode it and shows the no conversion needed message instead.
What does No conversion needed mean in the result?
The message means the output would match the input, so nothing changed. This happens when you encode a name that is already plain ASCII, such as example.com, or decode text with no xn-- labels. It also appears when the Punycode is invalid, so recheck for typos.
Can I paste a full URL into the IDN Punycode converter?
Yes, but only the host name is converted. The converter removes the https:// part and anything after the first slash, question mark or hash. Paste https://bücher.de/shop and you get the encoded form of bücher.de only.
Is the IDN Punycode converter free, and does it check if a domain is registered?
The converter is free and needs no sign-in. It only converts the text of a name. It does not check registration, DNS records or whether an extension allows your characters, so use a domain availability checker or DNS lookup for that.
Recommended

Explore VPN options

A VPN changes your network exit. It does not guarantee anonymity.

Hide Your IP Encryption Network coverage
Protect My IP Now