Confusable Character Detector
Detect Unicode confusables, scripts, skeleton matches and suspicious lookalike patterns.
Convert Unicode domain names into ASCII/Punycode and decode xn-- labels back to Unicode. Review IDNA validation and per-label conversion details.
This server-side tool validates domain labels with Python idna 3.18 using UTS #46 nontransitional, STD3 rules.
Enter a full Unicode domain or one label. Domains are split on recognized dot separators and processed label by label.
| Label | Input | Output | Conversion | Changed | Status |
|---|
This IDN converter turns Unicode U-labels into ASCII A-labels, decodes valid xn-- labels, processes full domains one label at a time, preserves valid ASCII labels, applies UTS #46 nontransitional, STD3 rules validation with Python idna 3.18, supports recognized Unicode domain separators, shows changed and unchanged labels, and processes input on the server.
café.example converts to xn--caf-dma.example. Only the first label changes.
| Label | Input | Output | Conversion | Changed | Status |
|---|---|---|---|---|---|
| 1 | café | xn--caf-dma | U-label to A-label | Yes | Valid |
| 2 | example | example | ASCII unchanged | No | Valid |
xn--caf-dma.example decodes to café.example. The xn--caf-dma A-label is decoded and the ASCII example label remains unchanged.
xn-- marks an ASCII A-label containing Punycode. It lets a Unicode domain label be represented with ASCII characters. The prefix applies to an individual label, so café becomes xn--caf-dma while an ASCII label such as example usually remains unchanged. Not every string beginning with xn-- is valid.
Punycode is an encoding algorithm. IDNA defines domain mapping, validation and label conversion, including U-labels and A-labels. Full domain conversion requires label-aware processing, so this tool uses the configured IDNA implementation rather than encoding the entire domain as one raw Punycode string.
Domains consist of labels separated by periods. Each label is validated separately, Unicode labels may become xn-- A-labels, ASCII labels can remain unchanged, and the converted domain is rebuilt with ASCII periods. Recognized separators are ., 。, . and 。; non-ASCII separators are reported when they are mapped.
The converter reports label-specific errors for empty labels, leading or trailing hyphens, invalid xn-- payloads, disallowed code points, invalid joiner context, bidirectional rule failures, labels that are too long and domains that exceed the supported DNS length. Invalid labels are not silently removed or fixed.
Punycode conversion only changes how an internationalized domain is represented. It does not confirm ownership, registration, trust, browser display behavior or phishing intent.
For Unicode lookalikes, use the Confusable Character Detector. To review writing systems, use the Mixed Script Detector.
The submitted domain or label is sent to UnicodeNow for IDNA and Punycode conversion. Input is processed securely and is not intentionally retained after the request completes.
Do not submit passwords, private keys, access tokens or other sensitive information.
The server separates the domain into labels and applies UTS #46 nontransitional, STD3 rules through Python idna 3.18. Unicode labels are converted to ASCII A-labels beginning with xn--, while valid ASCII labels remain unchanged.
Punycode is an ASCII-compatible encoding used inside internationalized domain names. IDNA uses it to represent Unicode domain labels as A-labels that begin with xn--.
The xn-- prefix marks an ASCII A-label containing a Punycode payload. It applies to one domain label, not necessarily the whole domain.
Choose Unicode domain to Punycode, enter a full domain or individual label, and run the conversion. The server validates each label with the configured IDNA profile.
Choose Punycode to Unicode and enter a domain containing valid xn-- labels. Only xn-- A-labels are decoded; ordinary ASCII labels remain unchanged.
Punycode is an encoding algorithm. IDNA defines domain mapping, validation, label handling, A-labels and U-labels for internationalized domain names.
No. Domains are processed label by label. In café.example, only café becomes xn--caf-dma and example remains unchanged.
Valid ASCII labels that do not need Punycode are preserved. DNS ASCII labels are case-insensitive, while generated A-labels are normalized to lowercase.
Yes. Valid IDNA and Punycode do not prove ownership, registration, trustworthiness, browser display behavior or intent.
No. The converter does not resolve DNS, fetch URLs, check registration status or verify domain ownership.
The server uses Python idna 3.18 with UTS #46 nontransitional, STD3 rules processing.
The submitted domain or label is sent to UnicodeNow for IDNA and Punycode conversion. The application code processes it for the request and does not intentionally retain it after completion, but you should not submit sensitive data.
Review Unicode lookalikes with the Confusable Character Detector or inspect writing systems with the Mixed Script Detector.
Detect Unicode confusables, scripts, skeleton matches and suspicious lookalike patterns.
Detect Unicode writing systems and mixed substantive-script patterns.
Search Unicode characters by glyph, code point, name, script or block.
Check which Unicode normalization forms match the input.
Encode and decode URL components, full URLs and form-style strings.
Convert text to and from Unicode escape sequences and numeric entities.