Convert internationalized domain names to and from xn-- notation. Full URLs are accepted.
A DNS label may only contain letters, digits and hyphens. To carry domain names written with Unicode characters, RFC 3492 Punycode encodes the label into an ASCII string. An encoded label is marked by the prefix xn--, known as the ACE prefix and defined in RFC 5890.
Punycode applies to one dot separated label at a time. In 日本語.jp the parts are 日本語 and jp; only the non ASCII label becomes xn--wgv71a119e, and jp stays as it is because it is already ASCII. This tool works the same way and lists the result for every label.
A DNS label is limited to 63 octets. What counts is the length after encoding, so a label that looks short in its native script can still exceed the limit once it is converted. This tool measures each converted label and flags any that go over 63.
This tool performs only the RFC 3492 encoding and decoding. It does not apply the UTS 46 mapping step (lowercasing, compatibility normalization, disallowed character checks). Browsers and registries do run that preprocessing, so input containing full width characters or unusual compatibility characters may give a different result there. Check the registry rules before relying on this for registration.
DNS labels may only contain letters, digits and hyphens, so characters outside ASCII cannot be registered directly. RFC 3492 Punycode encodes them into an ASCII string, and the prefix xn-- marks the label as encoded. That marker is called the ACE prefix and is defined in RFC 5890.
Punycode is defined to operate on a single dot separated label. For example 日本語.jp is split into 日本語 and jp; only the first label is encoded to xn--wgv71a119e while jp is already ASCII and stays as it is. The domain is not encoded as one whole string.
No. Both the Punycode encoding and decoding run entirely in JavaScript inside your browser. The domain name or URL you type is never transmitted to or stored on a server.