IDNA2008 vs 2003.

How a domain is encoded under each standard.

IDNA2008 A-label

xn--strae-oqa.de

Nontransitional UTS #46

IDNA2003 A-label

strasse.de

Transitional mapping

Profiles diverge

Yes

Different A-labels = different DNS names

Deviation chars

1

ß ς ZWJ ZWNJ

Host or URL

Parsed host: straße.de

Processing result

U-label (2008)
straße.de
A-label (2008)
xn--strae-oqa.de
A-label (2003)
strasse.de
Status
Valid, profiles disagree
  • A-labels diverge: IDNA2003 produces strasse.de, IDNA2008 produces xn--strae-oqa.de. Resolvers on each side will not see the same name.
  • U+00DF Latin small sharp s: IDNA2003 Nameprep mapped ß → ss, so straße.de and strasse.de were the same name. IDNA2008 treats ß as PVALID: they are different A-labels.
DeviationCodeIDNA2003Why it still matters
ß Latin small sharp sU+00DF→ ssIDNA2003 Nameprep mapped ß → ss, so straße.de and strasse.de were the same name. IDNA2008 treats ß as PVALID: they are different A-labels.
ς Greek small final sigmaU+03C2→ σIDNA2003 folded final sigma to σ. IDNA2008 leaves it. Two A-labels for what looks like the same Greek word.
Zero Width Non-JoinerU+200C→ (empty)CONTEXTJ in RFC 5892. Legal only between certain joining characters (Arabic, Indic). In a Latin host it is a hidden split that IDNA2008 rejects.
Zero Width JoinerU+200D→ (empty)The other CONTEXTJ mark. IDNA2003 stripped it and the label still resolved. IDNA2008 CheckJoiners fails the label.