I don’t understand the behavior of the uppercase function with some Greek characters. An example is iota (?).
UTF8 binary is &hCD89. Oddly, in the IDE if I change the encoding to UTF16 it still say CD89.
When I do this
s = uppercase("?")
s equals a diacritical character ( ? ) // it combines with a character typed in front of it.
The UTF8 binary is $CD85 (same bytes if I change encoding to UTF16).
I smell a bug, but I thought maybe those on this forum who know a lot more about Unicode than I might have an insight.
First of all, those UTF8 bytes are wrong–lowercase iota is CE B9.
Second, there does seem to be a bug in the casing tables for Greek. Specifically, iota uppercases to a subscript iota (&u345) instead of the correct &u399; mu (&u3BC) ends up remaining a lowercase mu (but at a different codepoint, &uB5) instead of the correct &u39C; and final sigma (&u3C2) is unchanged when it should, like ordinary lowercase sigma (&u3C3), become a capital sigma (&u3A3). No problems in the opposite direction; all unaccented Greek capitals go to their proper lowercase forms.
(Note: this is with RS 11r3 and also with Xojo 13r1, both running on Lion.)
And the bug is in RS/Xojo, as both Excel and Numbers handle those characters correctly.
Thanks for the info. I’ve filed a bug report.
<https://xojo.com/issue/28024>
For what it’s worth, I’ve also verified the bug in the corresponding versions under Windows XP.