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

  1. 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.
  2. Enter domain using the field table and calculation rules, then run the tool.
  3. Read domain. The explanation below defines the units, signs, ordering and any flags or placeholder values.
  4. 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 fieldMeaningValue type; see rules belowRequirement
domainASCII domain name with optional xn-- labels.string; maximum length: 1000000Required

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 fieldMeaningValue type
domainDomain with Punycode labels decoded.string; maximum length: 1000000
json
{
  "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

  1. 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.

Don't forget to set a bookmark for tool.io!
Privacy | Imprint | Cookies