Back to Blog
🌍

What is Punycode?

When the internet was first created, domain names were strictly limited to the ASCII character set (A-Z, 0-9, and hyphens).

But what happens if you want a domain name in Arabic, Chinese, or Cyrillic? What if you want to register www.😊.com?

Enter Punycode

Punycode is a special encoding scheme used to convert Unicode characters (like emojis and international alphabets) into the limited ASCII character set supported by the global Domain Name System (DNS).

How It Looks

Every Punycode string begins with the prefix xn--.

For example:

  • The German domain mΓΌnchen.de is encoded as xn--mnchen-3ya.de.
  • An emoji domain like β˜ƒ-⌘.com is encoded as xn----dqo34k.com.

Security Implications

Punycode is frequently used in phishing attacks (known as IDN homograph attacks). A hacker might register app1e.com where the "l" is actually a Cyrillic character that looks identical to a lowercase L. The browser will often display the Punycode version (xn--...) to warn you that it isn't the real Apple website.

Use our Punycode converter to inspect internationalized domain names and see their true ASCII representations!

Try it yourself!

Put this theory into practice using our free, client-side tool.

Open Tool