How to convert a domain
- Paste one or more domains, one per line. Full URLs work too; only the host is converted.
- Choose a direction or leave it on Auto. Auto converts names that contain
xn--labels to Unicode and everything else to Punycode. - Read the results table. Each line shows the output and a status. Errors name the label that failed.
- Open the label view for a row to see each label in both forms with its length.
- Copy or download the converted list.
What Punycode is
Punycode, defined in RFC 3492, is an encoding that turns a Unicode string into a string of ASCII letters, digits and hyphens, and back, without loss. The Domain Name System only handles ASCII names, so internationalized domain names (IDNs) are stored in DNS in this ASCII form.
RFC 5890 calls the Unicode form of a label a U-label and the ASCII form an A-label. Every A-label starts with the prefix xn--. The encoder copies the plain ASCII characters first, adds a hyphen as a separator, then appends a compact code for where the non-ASCII characters go. That is why münchen becomes mnchen-3ya: the letters mnchen are kept and 3ya describes the inserted ü.
Punycode works per label, not per domain. In bücher.example, only bücher changes; .example stays as it is.
Examples
| Unicode (U-label) | Punycode (A-label) | Notes |
|---|---|---|
münchen.de |
xn--mnchen-3ya.de |
German umlaut |
bücher.example |
xn--bcher-kva.example |
Only the first label changes |
пример.рф |
xn--e1afmkfd.xn--p1ai |
Cyrillic name and Cyrillic top-level domain |
例え.テスト |
xn--r8jz45g.xn--zckzah |
Japanese test domain |
faß.de |
xn--fa-hia.de |
Browsers keep ß; IDNA 2003 tools give fass.de |
MÜNCHEN.DE |
xn--mnchen-3ya.de |
Uppercase is mapped to lowercase first |
Rules the tool checks
- 63-character labels. RFC 5890 repeats the DNS rule that a label may not exceed 63 octets, including the
xn--prefix. That leaves at most 59 characters for the Punycode part. - Valid Punycode. An
xn--label must decode cleanly and re-encode to the same text.xn--zzfails this check. - Allowed characters. Spaces and URL delimiters such as
/,?and#are not allowed in a host name.
Hosts vs paths
Punycode is only for the host name. The path, query and fragment of a URL use percent-encoding instead. When you paste https://münchen.de/straße, the result is https://xn--mnchen-3ya.de/stra%C3%9Fe: Punycode in the host, UTF-8 percent-encoding in the path. To work with the path part, use the URL parser or the URL operations in the universal encoder decoder.
When you need this
- DNS and hosting panels often expect the
xn--form when you add a record or a domain. - Server logs and analytics may show the A-label, and you need the readable name.
- Security checks. Converting a suspicious link to its
xn--form shows which characters it really uses; look-alike letters from other scripts become visible. - SEO checks. Search engines and browsers can display either form. The article on Punycode domains and SEO covers what that means for links, canonical tags and how the name is shown.
Conversion uses the same URL engine as your browser plus a small Punycode decoder. Nothing is sent to our server.
Frequently asked questions
Why do I get xn--fa-hia.de for faß.de and not fass.de?
Modern browsers follow the WHATWG URL Standard, which keeps ß as its own character, so faß.de becomes xn--fa-hia.de. Older IDNA 2003 software mapped ß to ss and produced fass.de, which is a different domain.
Can I paste a full URL?
Yes. The tool extracts the hostname, converts it, and shows the rest of the URL unchanged. Path and query characters are not Punycode; they are percent-encoded instead.
Why is a domain marked invalid?
Common reasons are an xn-- label that is not valid Punycode, a label longer than 63 characters, spaces, or characters that are not allowed in domain names. The error column names the label that failed.