Punycode Converter & IDNA Validator
Bulk convert Unicode domains to Punycode (ACE) for DNS configuration. Features live IDNA validation, script detection, and RFC 3492 compliance.
About
The Internationalized Domain Names in Applications (IDNA) standard allows the global web to exist beyond the limitations of the English alphabet. However, the Domain Name System (DNS) remains restricted to ASCII characters. This tool bridges that gap using the Bootstring algorithm to convert Unicode strings into an ASCII Compatible Encoding (ACE) format, commonly known as Punycode.
Accuracy is paramount. A miscalculated Punycode string results in DNS NXDOMAIN errors, effectively taking a website offline or bouncing emails. This utility goes beyond simple conversion by validating against strict IDNA constraints, checking for label length violations (maximum 63 octets), and identifying prohibited characters that could indicate homograph attacks.
Formulas
Punycode uses the Bootstring algorithm to represent a sequence of code points as a sequence of basic code points (ASCII). The core of this is the representation of integers using a generalized variable-length encoding. The threshold t for a given position k is calculated dynamically:
The decoder accumulates these weights to determine the code point insertion index i and the code point n:
Reference Data
| Parameter | Value / Limit | Description |
|---|---|---|
| Prefix | xn-- | The ACE prefix distinguishing IDNs from standard ASCII domains. |
| Max Label Length | 63 octets | Maximum characters allowed between dots (e.g., sub.example.com). |
| Max FQDN Length | 253 octets | Total length of the domain including dots. |
| Base | 36 | The base used for representing integers in Bootstring. |
| Tmin | 1 | Minimum threshold for the variable-length integer calculation. |
| Tmax | 26 | Maximum threshold for the variable-length integer calculation. |
| Skew | 38 | Damping factor for the adaptation function. |
| Damp | 700 | Initial damping factor. |
| Initial N | 128 (0x80) | The initial code point bias (start of non-ASCII). |
| Initial Bias | 72 | The starting bias for the state machine. |