Thanks Chris for the response!

As The Unicode Standard does define an uppercase form for the German sharp S 
(U+00DF → U+1E9E), and this has been part of Unicode since version 5.1 (2008), 
with the German orthography officially adopting it in 2017. The relevant case 
mappings are clearly specified in the Unicode Character Database 
(CaseFolding.txt / SpecialCasing.txt), so Unicode itself does recognize this 
direct uppercase/lowercase relationship.

The current Python behavior (mapping "ß" → "SS") reflects older, legacy Unicode 
data — not the current standard. Languages and libraries that have updated 
their Unicode handling (like Java ≥9, ICU, Swift, etc.) already perform this 
mapping correctly ("ß".upper() → "ẞ").

So this isn’t an issue with Unicode, but rather that Python’s internal Unicode 
case conversion logic hasn’t yet been updated to reflect the more modern and 
officially standardized mapping.

In other words, this is something Python could and probably should modernize — 
aligning with Unicode’s current case conversion tables and modern German 
orthography.
-- 
https://mail.python.org/mailman3//lists/python-list.python.org

Reply via email to