RFC 5890: Internationalized Domain Names for Applications (IDNA 2008)

Defines how international domain names are encoded for use in DNS and email addresses.
Alaa
By Alaa
SMTPedia documents email infrastructure end to end: SMTP standards from the RFC archive, delivera...
8 min read Updated Jul 22, 2026 51 views
RFC 5890
Internationalized Domain Names for Applications (IDNA 2008)
Current standard
Domain
Internationalization
Published
August 2010
Obsoletes
RFC 3490
SMTP relevance
Medium
↗ Read on rfc-editor.org

What this RFC defines

RFC 5890 defines IDNA 2008 (Internationalized Domain Names in Applications), the standard for encoding non-ASCII domain names for use in DNS and internet protocols including email. It specifies how Unicode labels are converted to their ASCII-compatible encoding (ACE) form using the Punycode algorithm.

Where you see it in practice

When you send email to an address with a non-ASCII domain, for example, a German domain like bucher.de with an umlaut, the domain is encoded as an xn-- Punycode form in DNS and SMTP. RFC 5890 defines the rules for this encoding. Email validation systems that check whether an internationalized domain name is valid follow the character set restrictions and validation rules in this RFC.

How it connects to other RFCs

RFC 5890 obsoletes RFC 3490 (IDNA 2003) and is part of a suite with RFC 5891 (IDNA processing), RFC 5892 (Unicode code point rules), and RFC 5893 (Bidi rules). In the email context it works with RFC 6530-6532 (EAI) for fully internationalized email addresses. DNS resolution of internationalized domains always uses the Punycode-encoded ACE form defined here.

Current status

RFC 5890 is a current standard, published August 2010. IDNA 2008 is supported by major DNS resolvers and email systems. Some deployments still use the older IDNA 2003 (RFC 3490) rules, which can cause interoperability issues for certain Unicode characters where the two standards differ.

Internationalized Domain Names

RFC 5890 defined the IDNA2008 framework for Internationalized Domain Names in Applications in August 2010, replacing the earlier IDNA2003 (RFC 3490). IDNA lets domain names contain non-ASCII characters (Cyrillic, Chinese, Arabic, Hebrew) while remaining compatible with the ASCII-only DNS protocol via Punycode encoding. A domain like пример.рф is transmitted through DNS as xn--e1afmkfd.xn--p1ai, but displayed to users in its Unicode form when the client supports it.

IDNA2008 versus IDNA2003

The two IDNA versions differ in how they normalize input. IDNA2003 mapped uppercase to lowercase and applied various Unicode transformations before encoding. IDNA2008 relies on the application to pre-normalize and enforces stricter rules on which characters are allowed. This shift caused compatibility issues: some domains valid under IDNA2003 became invalid under IDNA2008. UTS 46 (Unicode Technical Standard 46) was published to bridge the two, defining a transitional processing mode that accepts both. Most modern software (browsers, mail clients) use UTS 46 in transitional mode.

Impact on email

IDNA enables addresses like alice@例え.jp, but requires supporting infrastructure: the DNS lookup works via Punycode (xn--r8jz45g.jp), the SMTP transport requires SMTPUTF8 (RFC 6531), and the local part may require RFC 6532 header support. Sending mail to a fully-internationalized address requires all three pieces plus IDNA in the client. In practice, mail providers in Japan, China, Russia, and the Middle East drove IDNA adoption; adoption in the English-speaking world remains uneven.

Quick Reference

RFC 5890 (August 2010) defines the terminology and framework for IDNA 2008 (Internationalized Domain Names in Applications): how internationalized domain names (like 例え.jp, müller.de, рф.ru) are represented in ASCII-only contexts via Punycode encoding with the xn-- prefix. Companion RFCs 5891, 5892, 5893, 5894 complete the specification. Replaces IDNA 2003 (RFC 3490). Foundation for internationalized email addresses in the domain part, used by SMTPUTF8, DNS, HTTPS, and every application handling international domains.

RFC 5890 at a glance

AspectDetail
PurposeDefine terminology and framework for internationalized domain names
U-labelUnicode form (e.g., 例え.jp)
A-labelASCII Punycode form (e.g., xn--r8jz45g.jp)
Companion RFCsRFC 5891 (protocol), 5892 (code points), 5893 (right-to-left), 5894 (background)
PredecessorIDNA 2003 (RFC 3490), which had security issues addressed by IDNA 2008
Related to emailDomain part of internationalized email addresses per RFC 6531
PublishedAugust 2010

U-labels and A-labels

AspectU-label (Unicode)A-label (ASCII / Punycode)
Example例え.jpxn--r8jz45g.jp
Example (German)müller.dexn--mller-kva.de
Example (Cyrillic)россия.рфxn--h1alffa9f.xn--p1ai
Where usedUser-facing displays, URL bars, address inputsDNS queries, wire protocols (unless SMTPUTF8), certificates
Case-sensitivityNormalization required (NFC)ASCII case-insensitive per DNS convention
Length limitsPer script; converted A-label must fit DNS 63 octets per label63 octets per label (DNS limit)

Punycode conversion mechanism

Punycode encoding: U-label to A-label Input U-label: 例え.jp Step 1: Split at dots: [“例え”, “jp”] Step 2: For each label containing non-ASCII: Encode via Punycode algorithm (RFC 3492) Prefix result with xn-- “例え” becomes “xn--r8jz45g” “jp” is ASCII, no encoding needed Step 3: Rejoin with dots: xn--r8jz45g.jpOutput A-label: xn--r8jz45g.jpThe Punycode algorithm: – Preserves order of ASCII characters (if any) – Encodes non-ASCII code points using base-36 representation – Fully reversible: A-label to U-label always recovers the originalVerification: – DNS queries use A-label form – Certificates typically list A-label in SAN – Mail clients display U-label to user – IDN homograph attacks exploit visually-similar characters (Cyrillic а vs Latin a); browsers apply mitigations

Changes from IDNA 2003 (RFC 3490)

AspectIDNA 2003IDNA 2008
Character mappingCase-folded, applied Nameprep (StringPrep-based)No mapping in protocol; application decides
Unicode versionFixed at Unicode 3.2Version-independent via property-based rules
Excluded charactersExplicit listCategorical rules (marks, formatting characters, punctuation)
Sharp s (ß)Mapped to “ss”Preserved as ß
Final sigma (ς)Mapped to lowercase sigmaPreserved
IDNA 2003 to 2008 incompatibility. Some domains that worked under IDNA 2003 no longer resolve identically under IDNA 2008 (particularly sharp s and final sigma cases). Implementers frequently apply a “transitional” mode that applies IDNA 2003 mappings before IDNA 2008 validation, easing the migration. Web browsers adopted transitional mode; some are now transitioning to full IDNA 2008.

Common IDNA implementation mistakes

Comparing labels without normalization. The same visible U-label can be encoded in multiple byte sequences (NFC vs NFD Unicode normalization). Comparing raw bytes reports different when they should be equal. Normalize to NFC before comparison per RFC 5890.
Not handling A-label vs U-label consistently. Some code paths receive A-labels (from DNS lookups); others receive U-labels (from user input). Storing them mixed causes duplicates and lookup failures. Choose one form for internal storage (typically A-label for DNS consistency) and convert at UI boundaries.
Ignoring IDN homograph attacks. Cyrillic а (U+0430) looks identical to Latin a (U+0061). Attackers register look-alike domains (раyраl.com with Cyrillic а) to phish users. Applications should detect mixed-script labels and warn or refuse. Browsers implement this; email clients should too, particularly for displayed From addresses.
Using deprecated IDNA 2003 for new code. Some libraries still default to IDNA 2003. This misses domains that IDNA 2008 supports and follows outdated Unicode. New implementations should use IDNA 2008 (RFC 5890 through 5894); use transitional mode only for backward compatibility with domains registered under IDNA 2003.
Confusing IDN with SMTPUTF8. IDN handles the domain part of email addresses (right of @). SMTPUTF8 handles the local part (left of @). An address like user@例え.jp works over standard SMTP with A-label conversion (user@xn--r8jz45g.jp). An address like 用户@example.com requires SMTPUTF8; no ASCII fallback exists for the local part.
IDNA 2008 family RFCs
  • RFC 5891: IDNA 2008 protocol (conversion rules)
  • RFC 5892: The Unicode Code Points and IDNA
  • RFC 5893: Right-to-Left Scripts for IDNA
  • RFC 5894: Background, Explanation, and Rationale
  • RFC 3492: Punycode algorithm
  • RFC 3490: IDNA 2003 (obsoleted)
Related internationalization RFCs
  • RFC 6531: SMTPUTF8 (uses IDNA for domain part)
  • RFC 6532: Internationalized email headers
  • RFC 6530: Overview of internationalized email
  • RFC 2047: Encoded-word (alternative for header content)
SMTPedia companion guides

Frequently asked questions

What is the difference between U-label and A-label?

U-label is the Unicode form of a domain label (例え, müller). A-label is the ASCII Punycode form (xn--r8jz45g, xn--mller-kva). Both represent the same domain; they are different encodings for different contexts. U-labels are for user-facing display; A-labels are for wire protocols like DNS. Conversion is reversible and lossless.

Why does DNS not support Unicode directly?

Historical: DNS was designed in the 1980s as an ASCII protocol. Retrofitting Unicode throughout every DNS server, resolver, and application was infeasible. Punycode’s ASCII-only representation lets Unicode domains coexist with legacy DNS infrastructure. Every DNS query for 例え.jp is actually a query for xn--r8jz45g.jp; the domain owner sees the U-label form, but the wire uses the A-label.

What are IDN homograph attacks?

Exploits that use visually-similar characters from different scripts to create look-alike domains. Cyrillic а (U+0430) looks identical to Latin a (U+0061), so раyраl.com (with three Cyrillic characters) is visually indistinguishable from paypal.com but resolves to a different domain. Modern browsers detect mixed-script labels and display the A-label form as warning. Email clients should apply similar detection to From displays.

Should I convert domains to A-label before storing them?

Recommended. A-labels are ASCII, case-normalized per DNS convention, and unambiguous. Storing U-labels risks Unicode normalization issues (NFC vs NFD, homograph variants). Convert to A-label at input, store A-label, convert back to U-label at display. Most modern IDN libraries provide bidirectional conversion.

Does IDNA 2008 affect email delivery?

Yes for the domain part of addresses. user@例え.jp is delivered via SMTP as user@xn--r8jz45g.jp (A-label) unless SMTPUTF8 is negotiated. The MX record for xn--r8jz45g.jp returns the receiving MTA, delivery proceeds normally. Local-part is unaffected by IDNA (that requires SMTPUTF8). Every mainstream ESP handles A-label conversion transparently.


About the Author

Alaa - SMTPedia author

Alaa · LinkedIn

Email infrastructure specialist with 8+ years of hands-on experience in SMTP, deliverability, and email verification. I’ve configured and troubleshot mail systems across Postfix, Exchange, and cloud relays, managed IP reputation and warmup campaigns, and built verification pipelines processing millions of addresses. My work spans DNS authentication (SPF, DKIM, DMARC, BIMI), bounce handling, blocklist monitoring, and compliance frameworks including CAN-SPAM and GDPR. I write every article on SMTPedia to give email professionals, developers, and marketers the accurate, RFC-grounded reference they need.


About SMTPedia

SMTPedia is an independent email industry reference covering SMTP, IMAP, POP3, email deliverability, marketing platforms, DNS authentication, and email verification. Every article is researched from official provider documentation, IETF RFCs, and industry best practices. Settings and configurations are verified quarterly.

We are cited as a source by ChatGPT, Microsoft Copilot, and thousands of email professionals worldwide. Learn more about our editorial process.