Controversy? This seems like nothing but a bug to me.
If one tell that all is perfect, that its' working 100% and it'is my issue ... what I must say?
In this forum when you write something that can help (may be this is the thinking), talking about bug or improvements seems that if one doesn't have more then 1000 posts you want only create problems.
So, better stop the conversation.
Years ago I ported Lazarus' utf8 upper/lower case conversion routines to a FreeBASIC library and found that not all languages/characters are covered. There are currently 290,000+ unicode characters with data points supporting 160+ languages/scripts. Libraries will probably never be complete.
That is right, of course, like always. But me be some better things one can do (or propose). I don't meaning to say "core developers let work" but we can do something, a little bit. Excpecially if "outside" those thing works better.
In this case, under Windows the things should works better (actually no sorry, they were already working well), without call "core developers".
ShowMessage ('ӄӥҗѝьß'+#13#10+UTF8UpperCase('ӄӥҗѝьß')+#13#10+UTF8LowerCase('ӄӥҗѝьß'));
AFAIK, there is already a capital eszett, but UTF8UpperCase('ß') converts it to SS (the case is similar to the cyrillic letter ь, which is never used in the beginning of the word, it is even named small “er”.)
'SS' is the right uppercase from standard (codepoint $00DF -> $0073 $0073). And it is one of the case that the lenght grows.
Other forms are (the graphics come form a PDF and are not rights):
Lowercase letters
00DF ß LATIN SMALL LETTER SHARP S
= Eszett
• German
• not used in Swiss High German
• uppercase is “SS” (standard case mapping),
alternatively 1E9E ẞ
• typographically the glyph for this character can
be based on a ligature of 017F ſ with either
0073 s or with an old-style glyph for 007A z
(the latter similar in appearance to 0292 ʒ ).
Both forms exist interchangeably today.
→ 017F ſ latin small letter long s
→ 0292 ʒ latin small letter ezh
→ 03B2 β greek small letter beta
→ 1E9E ẞ latin capital letter sharp s
→ A7B5 ꞵ latin small letter beta
→ A7D7 ꟗ latin small letter middle scots s