The examples in the initial "quick example" are backwards, no?
It's `'ß'.toUpperCase()` that is `"SS"`, not `'ß'.toLowerCase() === 'ss'`. As the later chart makes clear. Same with turkish ı.
It's `'ß'.toUpperCase()` that is `"SS"`, not `'ß'.toLowerCase() === 'ss'`. As the later chart makes clear. Same with turkish ı.
'ß'.toUpperCase() // = "SS"
'ß'.toLowerCase() // = "ß" "ẞ".to_lower() → "ß"
"ß".to_upper() → "SS"
"SS".to_lower() → "ss"
(there's a standard for how to compare strings case-insensitively that doesn't involve repeated case-folding, but it's much more complex)[0] https://www.unicode.org/reports/tr21/tr21-3.html#Caseless%20... [1] http://userguide.icu-project.org/transforms/casemappings#TOC...