Punycode and IDN Converter

Enter a domain to compare its Unicode and ASCII forms. Character findings help review suspicious names but do not establish whether a site is trustworthy.

Runs locally in your browser
Domain text is analyzed locally and no DNS or website request is made. A clean result reduces obvious risks but cannot prove that a domain is trustworthy.
Unicode or Punycode domainA hostname only; paths and query strings are removed
Per-label script analysis
LabelASCII / PunycodeScriptsRisk
Enter a domain to inspect each label.
Findings
  • The analyzer will report mixed scripts, invisible characters, bidirectional controls, and common lookalike letters.

Treat Unicode display names as untrusted input

For account recovery, certificates, email allowlists, redirects, and security decisions, normalize the hostname and compare the ASCII form using a current IDNA implementation and an application-specific policy.

How to convert a domain name to Punycode and read the findings

Type or paste a hostname — Unicode or already encoded — and press Convert & analyze. The tool reduces the input to a hostname, folds case and compatibility forms (NFKC plus lowercase), drops the characters IDNA ignores, and encodes every non-ASCII label as Punycode, so the ASCII line is the form a resolver or an allowlist would actually see.

Punycode labels are decoded and re-encoded on the way: a label that does not round-trip canonically is reported as invalid instead of being printed as garbage. Everything runs in the page, with no DNS lookup and no request to the site; a clean report means no obvious character-level risk was found, not that the domain can be trusted.

  1. Paste a hostname such as münchen.de or xn--mnchen-3ya.de into Domain name. A full URL works too — scheme, path, query string and port are removed before conversion.
  2. Press Convert & analyze, or press Enter inside the field. Load safety example fills in a Cyrillic lookalike of apple.example.
  3. Read Conversion result: the Unicode form, the ASCII / Punycode form, and the confusable skeleton that homograph names are built from.
  4. Check the Per-label script analysis table (label, ASCII form, scripts, risk) and then the Findings list.
  5. Use Copy ASCII to take the normalized ASCII hostname, and Clear to empty the field, the table and the findings.

What the conversion does — and what it cannot tell you

Input handling and normalization

The field is treated as a hostname rather than a URL: a leading scheme, a path, a query string and a trailing port are removed, a final dot is dropped, and an IP literal such as [::1] is refused with a message instead of being converted. An empty field is refused as well.

Before encoding, the name is mapped to its canonical form: NFKC folds full-width and compatibility characters, labels are lowercased, and the code points IDNA ignores — zero-width spaces, soft hyphens, byte-order marks, variation selectors, bidirectional controls — are removed. That is the treatment browsers apply before a hostname is used, so münchen.de, MÜNCHEN.DE and a spelling carrying a zero-width space all end up on the same ASCII output.

Each non-ASCII label is then Punycode-encoded and prefixed with xn--. Punycode labels are decoded back and re-encoded as well: when a label does not decode to a canonical Unicode label — xn--a, for instance — the tool reports it as invalid Punycode rather than showing the decoded bytes.

Reading the findings

A red finding marks something a browser or resolver would reject, or something that hides a character: a label that starts or ends with a hyphen, a character that cannot appear in a hostname label (underscore, @, spaces), an invalid Punycode label, or a label that exceeds 63 octets after conversion. 253 characters is the limit for the whole ASCII name.

Mixed writing systems inside one label, invisible or bidirectional characters, and common lookalikes — reported together with the simplified skeleton — are the patterns homograph attacks rely on. The risk badge in the table repeats that judgement per label: High when the label is not usable or mixes scripts, Medium when it carries a Punycode prefix or a lookalike, Low for an ordinary ASCII label.

What a clean result does not prove

The analysis is character-level only. No DNS record is queried, no certificate is fetched and no registry or reputation source is consulted, so a name can pass every check on this page and still be a registered phishing domain that resolves and serves content.

Use the ASCII form as the value you compare: for allowlists, certificate checks and redirect rules, compare the normalized ASCII hostname — not the Unicode display name — and compare it against the ASCII form produced by the other system. When a decision needs to be registry-accurate, confirm the result with a full UTS#46/IDNA implementation.

Recent tools: