Convert an internationalized domain to Punycode

日本語.jp or münchen.de — DNS only speaks ASCII, so unicode labels travel as xn-- strings. See the real name behind the encoding.

Tools used in this guide

The job

An internationalized domain name shows up as xn--… in configs, certificates and DNS records. Converting each label to Punycode (RFC 3492) is how the unicode name travels, and decoding it back reveals what a suspicious xn-- string actually says.

How to do it

Paste the domain — with unicode labels or xn-- labels — pick the direction, and convert. Each dot-separated label is processed independently, so mixing ascii and unicode parts is fine.

  • Only labels with non-ASCII characters get the xn-- prefix; plain-ASCII labels pass through.
  • Full-width dots (。 and .) count as separators — a paste from Japanese text still parses.

Worked example

bücher.example becomes xn--bcher-kva.example for DNS, and xn--wgv71a119e.jp decodes back to 日本語.jp — useful when a certificate or phishing email hides behind the encoded form.

Limits

This is label-level Punycode, not a full URL parser — paths and query strings are rejected. Labels are lowercased as DNS is case-insensitive, and there is no homograph detection: a decoded lookalike domain still needs a human check.