DNSfinder.net
IDN Converter

Punycode Converter

Domain names can contain letters from any script, but DNS only carries ASCII. Punycode is the encoding that turns münchen.de into xn--mnchen-3ya.de and back. Paste domains or email addresses, one per line and in either form, and the converter shows the readable Unicode name above the ASCII name for each. Up to 200 lines are converted at once, in your browser, with a button to copy the whole ASCII list.

Loading Punycode Converter...

Querying live edge resolvers and network infrastructure...

How to use the Punycode Converter

  1. Paste Unicode or xn-- domains, or email addresses, one per line. The default examples show both directions.
  2. Read each result card: the top line is the Unicode form people read, the bottom line is the ASCII form DNS uses.
  3. Click Copy ASCII to copy every converted name for a zone file, certificate request or configuration file.
  4. A line shown in red could not be decoded. Check the xn-- label for a typo or a cut-off ending.

What to look for

Where you need the ASCII form

Zone files, TLS certificate requests, many mail servers and older software accept only the xn-- form. The converter lowercases and normalises each label, encodes any label containing non-ASCII characters and leaves plain ASCII labels untouched, so a mixed name such as shop.münchen.de comes out as shop.xn--mnchen-3ya.de.

Spotting look-alike domains

Decoding exposes homographs. The default example xn--80ak6aa92e.com decodes to a name that looks like apple.com but is written in Cyrillic letters. Paste a suspicious link's hostname here before trusting it, and run it through the [Phishing Link Checker](/phishing-link-checker) if the decoded form imitates a brand.

Email addresses

For user@例え.jp the part before the @ is kept as typed and only the domain is converted, giving user@xn--r8jz45g.jp. Mailbox names are never Punycode-encoded. A non-ASCII mailbox name needs SMTPUTF8 support on both mail servers, which is a separate capability this converter cannot check.

Guide

How Punycode encodes international domain names

Why DNS needs Punycode

Hostnames in DNS are limited to letters, digits and hyphens, a rule older than Unicode. Internationalised Domain Names (IDNA) work around it without changing DNS: the application converts each non-ASCII label to an ASCII form before any lookup, and that ASCII form is what resolvers, registries and certificates see. Punycode, defined in RFC 3492, is the encoding used for that step, and every encoded label carries the xn-- prefix so software can recognise it.

The encoding is compact rather than obvious. It copies the ASCII characters of a label first, adds a hyphen separator if there were any, and then appends a short run of letters and digits that records where each non-ASCII character goes and what it is. That is why münchen becomes mnchen-3ya: the plain letters survive, and 3ya encodes the position and value of the ü.

What the converter does with each line

Each line is trimmed and split at the dots, with the full-width and ideographic full stops used in Japanese and Chinese text treated as dots too. Every label is Unicode-normalised to NFC and lowercased, then encoded only if it contains a character outside ASCII. Labels that already start with xn-- are decoded instead. The cards show both forms whichever one you typed, so a list can mix directions freely.

From the default input, münchen.de becomes xn--mnchen-3ya.de, bücher.example becomes xn--bcher-kva.example, and user@例え.jp keeps its mailbox name while the domain becomes xn--r8jz45g.jp. The fourth example runs the other way and decodes xn--80ak6aa92e.com to its Cyrillic imitation of apple.com.

The conversion is simplified IDNA. It does not apply the full IDNA2008 mapping tables, does not reject disallowed characters or mixed-script labels, and does not enforce the 63-octet label limit. Before registering a name, confirm the final form with the registry, which applies the TLD's own character policy.

Reading errors and odd results

A line in red means a label starting with xn-- could not be decoded. Invalid Punycode: truncated input means the encoded part ended early, usually a name cut off when copied. Invalid Punycode character means a character outside the letters, digits and hyphen the encoding allows, such as _ or a stray space. Fix the label and the card reappears.

A line that comes back unchanged contains only ASCII and no xn-- labels, so there was nothing to convert. Uppercase input is lowercased on the way through, because DNS names are case-insensitive and Punycode needs a consistent case to encode correctly.

  • Check that the xn-- prefix has two hyphens. xn-mnchen-3ya is not a valid IDN label.
  • Decode suspicious links before clicking: a Cyrillic а in place of a Latin a looks identical in most fonts.
  • Keep the ASCII form in configuration files. Many tools misread raw Unicode.

Where the ASCII form goes

DNS itself only ever stores the xn-- form, so use it in zone files, CNAME and MX targets and when you query the DNS Lookup or WHOIS Lookup. Certificates are the same: a certificate for an IDN lists the xn-- name in its subject alternative names, so generate the request with that form in the CSR Generator.

Browsers decide for themselves which form to display. Most show the Unicode name when a label's characters come from a single script they consider safe, and fall back to the xn-- form when scripts are mixed or confusable, as an anti-spoofing measure. If your legitimate IDN shows as xn-- in a browser, that policy is the usual reason.

Limits and privacy

Conversion happens entirely in your browser. Nothing you paste is sent to DNSfinder. The tool processes the first 200 non-empty lines and ignores the rest, so split very large lists. It does not check whether a domain exists or is registered. For that, run the ASCII form through Domain Availability.

Knowledge Base & FAQ

Punycode Converter FAQs

Common questions about the punycode converter.

An encoding defined in RFC 3492 that represents any Unicode string using only ASCII letters, digits and hyphens. In domain names each encoded label is prefixed with xn-- so that software can tell it apart from an ordinary label. It is the ASCII layer that lets DNS carry names written in other scripts.