Your country

Tools that support it use your country for local currency, number formats, units and paper size. Your choice is saved only in this browser.

Type a name or a two-letter code. Use the up and down arrow keys to move through the countries, Enter to choose one and Escape to close.

Punycode Converter

Unicode domains to xn-- and back, with the script of every label and look-alike warnings.

Free preview, no sign-upIncluded in your pass Pro tool Pro pass: ₹179 / $5.99 for 30 days On this device: nothing is sent
+3 +1 more details No uploadWorks offline once opened Network

Free preview: every count and the verdict of each name that needs a look in full, with the first rows of the conversion table (up to 10). Locked until you unlock it: download and copy.

Pro pass ₹179 for 30 days or ₹79 for 1 week, one‑time. Pro pass $5.99 for 30 days or $2.99 for 1 week, one‑time. How to unlock

Try before you buy.

  • Free preview: every count and the verdict of each name that needs a look in full, with the first rows of the conversion table (up to 10).
  • Locked until you unlock it: download and copy.
  • Unlock: Pro pass, ₹179 for 30 days or ₹79 for 1 week, a one-time payment that never renews. Unlock: Pro pass, $5.99 for 30 days or $2.99 for 1 week, a one-time payment that never renews.

Ways to unlock shows how to get the full result.

See passes (opens in a new tab)

Printing this result is locked in the free preview.

Names to convert

Unicode names become Punycode (xn--…), Punycode becomes Unicode, and every name gets a look-alike check. Up to 5,000 lines. Your browser does all of it; nothing is sent anywhere.

Look-alike and validity checks

Paste names to convert and check them.

    Next steps Done. What next?

    Start over

    A Pro pass unlocks the full result. See passes

    All network & web tools

    About the Punycode Converter

    International domain names such as bücher.de or 例え.テスト travel through DNS in an ASCII form, the A-label: xn-- followed by the name in Punycode (xn--bcher-kva.de). Paste a list of domains, e-mail addresses or URLs, one per line, and this page converts each one both ways: Unicode names to Punycode with your browser’s own IDNA processing, and xn-- labels back to Unicode, checking that each converts back to exactly the same label.

    Every name also gets the checks that matter when a link looks wrong or before you register a name: the script of each label, the UTS #39 look-alike rules (a Cyrillic а in аpple.com, or аррӏе.com written entirely in Cyrillic letters), characters that IDNA2008 registries refuse, invisible characters, ß-style characters that older software turns into a different name, and the DNS length and hyphen rules.

    Without a pass you see a free preview: every count and the verdict of each name that needs a look in full, with the first rows of the conversion table. The whole table, copying the Punycode and Unicode lists and the CSV unlock with a Pro pass.

    How to use it

    1. Paste the names into the box, one per line: domains (bücher.de), Punycode (xn--80ak6aa92e.com), e-mail addresses (user@münchen.de) or URLs (only the host is converted). Or press Example list.
    2. Read the counts and the list under them: every name with a look-alike risk, something to check or a problem is listed there, the most serious first, with its verdict.
    3. Look up a name in the Conversions table: its Unicode and Punycode forms (the one that changed in bold), the scripts of its labels, and under Check every finding with the characters to look at.
    4. With a pass, or once this result is unlocked, copy the Punycode or the Unicode list (one line per name, in your order) or download the whole report as CSV; the free preview shows the first rows of the table.

    Examples

    A German name
    Input
    bücher.de
    Result
    xn--bcher-kva.de · single script: Latin
    A whole-script look-alike
    Input
    xn--80ak6aa92e.com
    Result
    аррӏе.com · look-alike risk: Cyrillic letters that all look Latin (it reads as “apple”)

    Five letters, all Cyrillic (а U+0430, р U+0440 twice, ӏ U+04CF, е U+0435), that look like Latin ones. Chrome shows such a label as Punycode unless the top-level domain is one it allows for that script: for Cyrillic, a Cyrillic one such as .рф, or one such as .ru where many Cyrillic names are registered.

    One Cyrillic letter in a Latin name
    Input
    аpple.com
    Result
    xn--pple-43d.com · look-alike risk: mixes Cyrillic and Latin in one label
    A character that older software changes
    Input
    faß.de
    Result
    xn--fa-hia.de · check: ß can lead to another name (fass.de)

    IDNA2008 and the URL Standard that browsers follow keep ß; software still on the deprecated Transitional processing of UTS #46 writes “ss”, which is a different domain.

    A Japanese name
    Input
    例え.テスト
    Result
    xn--r8jz45g.xn--zckzah · single script: Japanese
    A fake xn-- label
    Input
    xn--a.com
    Result
    Invalid: “xn--a” decodes to the control character U+0080 (a “Fake A-label”)
    A link that names one site and goes to another
    Input
    https://mybank.example@phish.example/login
    Result
    Check: a user name before @ hides the host · browsers go to phish.example

    Everything before the last @ of a web address is a user name. A backslash plays the same trick: https://phish.example\@mybank.example/ goes to phish.example too.

    Common uses

    • Checking a link in an e-mail or message whose domain looks familiar but feels wrong, before you sign in: look-alike letters, a user name before @, a backslash or a percent-encoded host.
    • Converting a list of international domains or e-mail addresses for a system that only accepts ASCII (mail servers, certificate requests, DNS zone files, firewalls, ad and analytics filters).
    • Turning xn-- names from logs, certificates and DNS records back into what people actually read.
    • Testing an international name before you register it: scripts, IDNA2008 characters, hyphens and length.

    How the conversion works

    To ASCII, the page hands each host to your browser’s URL parser, which applies Unicode’s IDNA processing (UTS #46) the way the URL Standard asks: Nontransitional processing, with the Bidi rule and the joiner rules checked. That maps the name first (capital letters to lower case, full-width letters to normal ones, invisible characters such as the soft hyphen dropped) and then writes each international label as xn-- and its Punycode (RFC 3492). So the result is exactly where a link to that name goes in this browser.

    To Unicode, each xn-- label is decoded with RFC 3492 and converted back: RFC 5891 §5.3 asks an application that shows names to reject a label that does not come back the same. The URL Standard has browsers lower-case an all-ASCII host without checking its xn-- labels, so a link can carry what RFC 5890 calls a Fake A-label: one that is not valid Punycode, decodes to plain ASCII or to a character IDNA does not allow, or is not the form the browser itself would write. This page names the reason.

    Look-alike checks (UTS #39)

    UTS #39, Unicode Security Mechanisms defines how to tell whether a string mixes scripts: each character’s scripts (with Japanese, Korean and Han-with-Bopomofo treated as one writing system each) are intersected; when nothing is left, the label is mixed-script. Its restriction levels grade the mix: ASCII-Only, Single Script, Highly Restrictive (Latin with Chinese, Japanese or Korean), Moderately Restrictive (Latin with one other Recommended script of UAX #31, except Cyrillic and Greek) and Minimally Restrictive (anything else). This page gives each label its level and flags:

    • Mixed scripts at the lowest level as a look-alike risk: аpple (Cyrillic а and Latin pple) or gοοgle (two Greek omicrons).
    • Whole-script look-alikes: a label in one non-Latin script whose letters all look Latin, such as Cyrillic аррӏе. It reads as the ASCII name you would expect, found by replacing each character with its look-alike from Unicode’s confusables data. Under a top-level domain of the same script (.рф) it is only something to check, since names there are expected to be Cyrillic.
    • Latin with another script at the Moderately Restrictive level as something to check.

    Browsers apply rules of their own. Chrome decides for each label whether to show Unicode or Punycode; its checks include a script-mixing check built on UTS #39’s Highly Restrictive profile, under which Latin, Cyrillic and Greek never mix and ASCII letters mix only with Chinese, Japanese or Korean characters (Chromium’s IDN display policy).

    What browsers accept and registries refuse

    Browsers convert more than registries allow. IDNA2008 (RFC 5892) derives which characters a domain may hold: letters, digits and marks, with listed exceptions; symbols and emoji are not allowed, so i❤.ws converts in a browser but is refused wherever IDNA2008 is the rule. A few characters are allowed only in context (a middle dot only between two l’s, as in Catalan l·l). The page derives each character’s status with RFC 5892’s rules and flags the rest.

    Four deviation characters — ß, the Greek final ς, and the zero width joiner and non-joiner — are kept under IDNA2008 and the URL Standard that browsers follow, but changed by software that still uses UTS #46’s deprecated Transitional processing (ß → ss): faß.de and fass.de are different domains, and such software sends you to the second.

    The ASCII form is also checked against DNS: a label holds at most 63 characters and a name 253 (RFC 1035 §2.3.4, 255 octets on the wire); host names can’t start or end a label with a hyphen, and hyphens in the 3rd and 4th places are reserved for forms such as xn-- (RFC 5890 §2.3.1).

    E-mail addresses and URLs

    Only the domain of an e-mail address has an ASCII form. A local part with non-ASCII characters (имя@пример.рф) can only be delivered when every mail server on the way supports SMTPUTF8 (RFC 6531), and RFC 6530 discourages Punycode in the domain of such an address, so keep it in Unicode. In a URL only the host is converted; browsers percent-encode non-ASCII characters in the path and query themselves.

    A web address can also hide where it leads without a single international character, and the page flags these too, naming the host the browser goes to (URL Standard):

    • What comes before the last @ is a user name, not the site: https://mybank.example@phish.example/ goes to phish.example.
    • A backslash counts as a slash: https://phish.example\@mybank.example/ goes to phish.example.
    • Percent-encoded characters in the host are decoded first: https://ex%61mple.com/ goes to example.com.

    Limitations

    • The ASCII form comes from your browser’s own IDNA processing, which follows the Unicode version it ships with; an older browser may refuse a recently added character, or treat a rare one differently.
    • The look-alike check knows the characters that look like ASCII letters and digits (from Unicode’s confusables data). Look-alikes between two non-Latin scripts and typos that stay in ASCII (rn for m, 1 for l) are not flagged; the Suspicious Link Checker compares links with well-known names.
    • The IDNA2008 status of each character is derived with the rules of RFC 5892 from your browser’s Unicode data. Registries use the IANA tables for their own Unicode version and add rules of their own (which scripts a top-level domain accepts), so a registry can still refuse a name that passes here.
    • It converts and checks names; it does not look them up. To see whether a domain exists and who runs it, use the DNS Lookup or the WHOIS Lookup.
    • Up to 5,000 lines are read in one run; split a longer list.

    Privacy

    On this device: nothing is sent

    Everything happens in your browser. What you enter or open here is not uploaded or stored by MySmartCoPilot.

    Frequently asked questions

    What do I get without a pass?

    Without a pass, Punycode Converter shows every count and the verdict of each name that needs a look in full, with the first rows of the conversion table (up to 10). Until you unlock it, the result can’t be downloaded or copied. A Pro, Premium or Ultimate pass, a one-time payment that never renews, unlocks the full result. The pricing page lists the passes and their prices.

    What is Punycode?

    Punycode (RFC 3492) writes a string of Unicode characters with only the letters a–z, the digits and the hyphen, so that DNS, which was built for ASCII, can carry international names. A domain label in Punycode starts with the prefix xn--: bücher becomes xn--bcher-kva. Browsers convert between the two forms automatically.

    Why does my browser show xn-- instead of the real name?

    Browsers show Punycode when a label could be mistaken for another name. Chrome, for example, checks every label against rules built on UTS #39: a label that mixes Latin with Cyrillic or Greek is shown as xn--…, and so is one written entirely in look-alike letters of one script, unless the top-level domain is one Chrome allows for that script (for Cyrillic, a Cyrillic one such as .рф, or one such as .ru). Paste the name here to see which characters caused it.

    How can I tell whether a domain is a look-alike?

    Paste it here: a label that mixes scripts (a Cyrillic а among Latin letters) or a label whose letters all look Latin but are not (аррӏе) is flagged as a look-alike risk, with each suspect character, its code point and the ASCII letter it imitates. A name that passes can still belong to someone else, so check where a link leads before you sign in.

    Are ß and ss the same in a domain name?

    Not any more. Under IDNA2008 and the URL Standard that browsers follow, faß.de is its own domain, xn--fa-hia.de. Older software that still uses the deprecated Transitional processing of UTS #46 turns ß into ss and goes to fass.de instead. The same holds for the Greek final ς (σ) and the zero width joiner and non-joiner (removed).

    Can a domain name contain emoji?

    Browsers convert emoji domains (i❤.ws becomes xn--i-7iq.ws), but IDNA2008 does not allow emoji or other symbols, and registries that follow it refuse such names. The tool flags every character IDNA2008 does not allow.

    Can I convert a whole e-mail address to ASCII?

    Only the domain part. A local part (before the @) with non-ASCII characters has no Punycode form: it needs SMTPUTF8 support on every mail server on the way (RFC 6531). The tool converts the domain and tells you when the local part can’t be.

    Quick answers and tool search

    Type to search tools or to get a quick answer, for example 18% of 2500. Use the up and down arrow keys to move through the results, Enter to choose, and Escape to close.