Log in Sign up
Punycode

Convert internationalized domains to Punycode and back

DNS stores internationalized domains as xn--. Type into either field, one domain, email address or link per line, and the other field fills in.

Conversion runs in your browser, domains go nowhere.

Cyrillic top-level domains in Punycode

Seeing xn--p1ai in logs, email or a hosting panel? That is the Russian .рф zone. The other Cyrillic zones are below.

ZonePunycodeUsed by
.рфxn--p1aiRussia
.русxn--p1acfRussian-language sites
.москваxn--80adxhksMoscow
.детиxn--d1acj3bsites for children
.онлайнxn--80asehdbany site
.сайтxn--80aswgany site
.оргxn--c1avgorganizations
.комxn--j1aefcompanies
.укрxn--j1amhUkraine
.белxn--90aisBelarus
.қазxn--80ao21aKazakhstan
.србxn--90a3acSerbia
.мкдxn--d1alfNorth Macedonia
.монxn--l1accMongolia
Letters of a national alphabet pass through a prism and turn into Punycode

What Punycode is

DNS only understands Latin letters, digits and hyphens. Your browser turns münchen.de into xn--mnchen-3ya.de with the Punycode algorithm from RFC 3492 and shows the original spelling in the address bar.

Each label of the domain gets encoded on its own with an xn-- prefix. Latin labels stay the same: bücher.example.com becomes xn--bcher-kva.example.com.

Cyrillic а, е, о, р, с and х look exactly like their Latin twins. Scammers register a domain with one swapped letter and pass it off as a well-known site. The converter flags labels that mix scripts.

When it helps

  • Your hosting panel, DNS or nginx config only accepts xn--, and your domain has accents or non-Latin letters.
  • An xn-- address turned up in logs or an email, and you want to know what site it is.
  • You check a link from an email for swapped letters.
  • You prepare a domain list for an SSL certificate or a scraper.

Questions and answers

01What does xn--p1ai mean?

It is the Russian .рф zone in Punycode. Labels in front of it with the xn-- prefix are Cyrillic too: xn--e1afmkfd.xn--p1ai reads as пример.рф.

02How do I put an IDN domain into nginx or DNS?

Use Punycode in configs: server_name xn--mnchen-3ya.de; and the same name in the DNS zone. Browsers convert the address both ways by themselves.

03Can I convert an email address to Punycode?

The domain after @ converts like any other. The mailbox name before @ stays as it is: only servers with SMTPUTF8 accept non-Latin letters there.

04How do I spot a fake domain with swapped letters?

Paste the address here. A domain with a Cyrillic а instead of a Latin a starts with xn--, and the check shows which scripts it mixes.

05Why does the browser show a domain as xn-- instead of letters?

That is the browser's guard against spoofing. When a name mixes scripts or uses letters that look Latin, it shows the Punycode. A name written in one script without lookalike letters shows as is.

Pricing Grab a free hour