Dear Python Developers, I would like to bring attention to an inconsistency and legacy behavior regarding the handling of the German sharp S characters in Python’s string case conversion methods.
Currently, Python’s .upper() method converts the lowercase sharp S (U+00DF, “ß”) to the uppercase “SS” rather than the uppercase sharp S character (U+1E9E, “ẞ”). Conversely, the .lower() method converts “ẞ” to “ß”. This results in a one-way canonical mapping and legacy behavior that does not reflect modern orthographic standards. Since 2017, the uppercase sharp S (ẞ, U+1E9E) has been officially recognized in German orthography and Unicode standards, providing a direct uppercase counterpart to the lowercase “ß” (U+00DF). Many modern programming languages and libraries—such as Java (from Java 9+), ICU, and recent versions of Swift—support this direct uppercase/lowercase mapping. This update improves text processing accuracy and consistency in German-language applications. Given Python’s global reach and extensive use in linguistically diverse contexts, I propose that Python’s standard string methods be updated to: Convert lowercase “ß” (U+00DF) to uppercase “ẞ” (U+1E9E) with .upper() Convert uppercase “ẞ” (U+1E9E) to lowercase “ß” (U+00DF) with .lower() Preserve existing “ẞ” and “ß” characters when appropriate without falling back to “SS” This would help align Python with current Unicode standards and modern language usage, reducing legacy issues and simplifying case conversions for German text. Thank you for considering this enhancement. Best regards DarioSulser -- https://mail.python.org/mailman3//lists/python-list.python.org
