Updated · Built and checked by the PlinzoTools team, formulas tested against published sources
Convert internationalized domain names to/from ASCII-safe Punycode.
xn--mnchen-3ya
Domain names were originally restricted to ASCII characters, but internationalized domain names (IDNs) like "münchen.de" need to represent non-ASCII characters. Punycode (RFC 3492) solves this by encoding any Unicode domain label into an ASCII-safe string prefixed with "xn--" -- the actual form your browser and DNS servers use behind the scenes.
Choose Encode (Unicode to ASCII) or Decode (ASCII to Unicode), then enter a domain or single label. Each dot-separated label is converted independently, matching how real DNS resolution works.
ASCII characters in the label are kept as-is; non-ASCII characters are stripped out and re-encoded as a suffix using the Bootstring algorithm, then the whole thing is prefixed with "xn--" to signal it's Punycode-encoded to browsers and DNS resolvers.
"münchen" encodes to xn--mnchen-3ya -- the actual DNS-level form of that domain label.
For encoding a URL's query string or path instead of its domain, see the URL Encoder.
Take the label "bücher", the German word for books. The ASCII letters b, c, h, e and r are copied first, in order, forming "bcher". A hyphen is then added as a delimiter, and after it come characters that encode the position and value of the non-ASCII letter. The whole label is prefixed with "xn--". Everything before the last hyphen is the plain ASCII part, which is why you can often recognize the original word inside a Punycode label, as in "xn--mnchen-3ya". The characters after the final hyphen are the compact instructions for reinserting the missing letters. If the label contained only non-ASCII characters, there would be no ASCII part and no delimiter hyphen, and the label would look like "xn--" followed directly by the encoded digits.
The input is split at every dot, and each label is handled on its own. A label consisting only of ASCII characters is left exactly as it is, so "example.com" passes through unchanged when you encode. On decoding, a label that does not begin with "xn--" is likewise left as is, which means you can safely paste a whole domain that mixes plain and encoded labels, such as "www.xn--mnchen-3ya.de", and only the encoded part will change. If an encoded label contains characters outside the allowed digits and letters, or ends unexpectedly, you will get a malformed input message rather than a guess.
This tool performs the raw Punycode algorithm only. Browsers and registries apply an additional standardized preparation step before encoding, such as converting letters to lower case, normalizing equivalent character forms, and rejecting disallowed characters. This tool does not perform that preparation, so enter your label in lower case, in its normal composed form, to get a result matching what a registrar would use. It also does not check the length limits that apply to domain labels or the whole name, and it does not confirm that a domain is registered or that a particular registry allows the characters you chose. Before registering an internationalized domain, confirm the rules with your registrar or the registry operating that top-level domain.
Looking at the decoded form is a helpful step when you receive a suspicious link. A domain that appears to read like a well-known brand may contain look-alike characters from another alphabet. Encoding what you see, or decoding the link's actual host, reveals whether hidden non-ASCII letters are present. If a link looks deceptive, do not open it, and report it through your email provider or the impersonated organization's official channels.
Because DNS itself was designed around ASCII-only hostnames -- Punycode lets IDNs work within that existing infrastructure without requiring DNS itself to change.
Modern browsers usually display the readable Unicode form in the address bar for legitimate IDNs, though some browsers show the Punycode form for domains that mix scripts in ways associated with phishing (a security measure called IDN homograph protection).
Yes -- each dot-separated label (e.g. "münchen" and "de" in "münchen.de") is encoded independently, matching how DNS actually processes multi-label domain names.
Labels made only of ASCII characters need no conversion, so they are returned exactly as typed.
No, enter just the domain name. Scheme text such as https:// and any path would be treated as part of the labels.
No. It applies only the Punycode algorithm, so enter labels in lower case to match how domains are normally registered and resolved.
Yes. Each label is decoded separately, and labels without the xn-- prefix are left untouched.
Reference: MDN Web Docs