Skip to content
🌐

Punycode / IDN Converter

Developer

Convert internationalized domain names to Punycode (xn--) and back. Supports Unicode domains, emoji domains, URLs, and email addresses.

0
0
Unicode / IDN
Punycode / ASCII

DNS itself only understands ASCII, which means a domain name written in Cyrillic, Chinese, or with an emoji has to get represented some other way before it can actually resolve, and Punycode is that specific encoding, converting non-ASCII characters into an ASCII string prefixed with xn-- that DNS infrastructure can handle without ever needing to understand Unicode itself. This tool encodes and decodes Punycode for internationalized domain names, converting between the Unicode domain a person actually types and the ASCII form DNS actually resolves.

See more about the Punycode / IDN Converter

Useful for converting an internationalized domain into the ASCII Punycode form it actually resolves to behind the scenes, decoding a suspicious xn-- domain to see what Unicode characters it's actually hiding before trusting a link, or checking exactly how a non-ASCII domain gets represented once it leaves a browser's address bar and reaches DNS.

Examples

Encode a Unicode Domain

Input: münchen.de

Output: xn--mnchen-3ya.de

Convert an internationalized domain into the ASCII Punycode form DNS actually resolves.

Decode a Punycode Domain

Input: xn--h1alffa9f.xn--p1ai

Output: россия.рф

Decode an xn-- domain back into its Unicode characters.

Encode an Emoji Domain

Input: 🇧🇪.ws

Output: xn--f77hga.ws

Emoji domains encode to Punycode the same way as any other Unicode label.

Encode a Non-Latin Script Domain

Input: হারুন.বাংলা

Output: xn--85bp0auq.xn--54b7fta0cc

Each label of a multi-label domain is encoded independently.

Key features

  • Bidirectional Unicode ↔ Punycode conversion
  • Supports domains, URLs, and email addresses
  • Homograph-attack warnings
  • Runs entirely in your browser

Quick answers for Punycode / IDN Converter

What does the xn-- prefix mean?
xn-- is the ASCII Compatible Encoding (ACE) prefix that marks a domain label as Punycode. It tells DNS resolvers and browsers that everything after it is an encoded Unicode string rather than a plain ASCII name.
Why does DNS need Punycode at all?
DNS itself only understands ASCII. Punycode is the mechanism that represents a Unicode domain label, like one written in Cyrillic, Chinese, or Bengali, in an ASCII form DNS can actually store and resolve.
What is a homograph attack, and does this tool catch it?
A homograph attack swaps in visually similar characters from another script, like a Cyrillic а in place of a Latin a, to spoof a trusted domain. This tool flags a warning when a label mixes Latin characters with Cyrillic or Greek look-alikes, the classic homograph-spoofing pattern.
Are emoji domains actually real?
Yes. Some registrars and browsers allow emoji characters in a domain label, like 🇧🇪.ws, and encode them into Punycode through the exact same mechanism used for any other non-ASCII character.
Why does the tool lowercase the input before encoding?
IDNA processing is case-insensitive, so the tool case-folds input before encoding to make sure MÜNCHEN.DE and münchen.de produce the same Punycode output, matching how DNS actually treats the two.