Punycode Domain Decoder
Decode xn-- domain labels using RFC 3492 without claiming DNS registration or Unicode confusable safety.
Description
Punycode encodes Unicode domain labels with an xn-- prefix.
Punycode encodes Unicode domain labels with an xn-- prefix. Decoding labels for display is distinct from validating them under IDNA domain rules.1
Decode xn-- domain labels using RFC 3492 without claiming DNS registration or Unicode confusable safety.
When to use Punycode Domain Decoder
Use this tool to decode xn-- domain labels using RFC 3492 without claiming DNS registration or Unicode confusable safety.
Choose the URL, decoded source text, header value or explicit byte list requested by this tool. Paste the complete relevant input and follow its parsing and encoding conventions.
How to use Punycode Domain Decoder and understand its results
- Choose the URL, decoded source text, header value or explicit byte list requested by this tool. Paste the complete relevant input and follow its parsing and encoding conventions.
- Enter domain using the field table and calculation rules, then run the tool.
- Read domain. The explanation below defines the units, signs, ordering and any flags or placeholder values.
- If the tool reports an input issue, correct the values and run it again. Apply the stated assumptions when interpreting a successfully returned result.
| Input field | Meaning | Value type; see rules below | Requirement |
|---|---|---|---|
| domain | ASCII domain name with optional xn-- labels. | string; maximum length: 1000000 | Required |
Enter ASCII letters, digits, dots and hyphens. Split labels and case-insensitively identify xn-- prefixes, decode their bootstring payload and rejoin. Malformed payloads, unsafe integer steps or invalid Unicode scalar values yield input errors. Non-prefixed labels preserve their spelling.
domain=join('.',decode xn-- labels with RFC 3492; retain other labels) Units, indexing, boundary conditions and exceptional cases are defined in the calculation rules above.
| Output field | Meaning | Value type |
|---|---|---|
| domain | Domain with Punycode labels decoded. | string; maximum length: 1000000 |
{
"input": {
"domain": "xn--bcher-kva.example"
},
"output": {
"domain": "bücher.example"
}
} Limitations and assumptions
This does not perform IDNA round-trip validation, check DNS registration or assess confusables. Empty interior labels and trailing dots are not rejected solely by this decoder.
Numeric inputs must be finite. Follow the calculation-specific rules for overflow, underflow and exceptional cases. Extremely large text inputs are rejected. Missing required fields, extra fields, wrong value types and violations of the calculation rules are input errors.
Alternative or Complementary methods
Use Unicode Domain to ASCII: Normalize a Unicode domain using WHATWG URL IDNA processing and return its ASCII hostname without performing DNS lookup. For a complementary task, use URL Hostname: Extract the hostname of an absolute URL using the WHATWG URL parser, including its normalization rules.
References
-
Punycode Domain Decoder — tool.io
Similar or alternative tools
- Unicode Domain to ASCII
Normalize a Unicode domain using WHATWG URL IDNA processing and return its ASCII hostname without performing DNS lookup.
- URL Hostname
Extract the hostname of an absolute URL using the WHATWG URL parser, including its normalization rules.