Re: Problem: u_strToUpper - & u_strToLower convertion

Markus Scherer <[email protected]> Fri, 09 Apr 2004 09:46:17 -0700
Newsgroups gmane.comp.lib.icu.general
Organization IBM
Message-ID <[email protected]>
Yan Xuan Liang wrote:
> There are many special case mapping. Please refer to SpecialCasing.txt.

Correct. There it says:
# All letters with YPOGEGRAMMENI (iota-subscript) or PROSGEGRAMMENI (iota adscript)
# have special uppercases.
# Note: characters with PROSGEGRAMMENI are actually titlecase, not uppercase!

1F80; 1F80; 1F88; 1F08 0399; # GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
1F81; 1F81; 1F89; 1F09 0399; # GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI
1F82; 1F82; 1F8A; 1F0A 0399; # GREEK SMALL LETTER ALPHA WITH PSILI AND VARIA AND YPOGEGRAMMENI

UnicodeData.txt only lists _simple_ case mappings - with 1:1 code point mappings, which are provided
by ICU's u_toupper() etc. in uchar.h. Please see the API references there.

_Full_ case mappings operate on strings because they can make the resulting string longer or shorter
than the original, and are language- and context-sensitive. SpecialCasing.txt specifies where full
case mappings differ from simple ones.

See the Unicode standard at unicode.org for details.
See also the upcoming POSIX migration chapter in our User Guide:
http://oss.software.ibm.com/icu/userguide/posix.html#case_mappings

Best regards,
markus

> In some cases the u_strToUpper - & u_strToLower convertion doesn't match 
> the definition in the Unicode.txt from the www.unicode.org
> 
> 1F80;GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI;Ll;0;L;1F00 
> 0345;;;;N;;;1F88;;1F88
> 1F81;GREEK SMALL LETTER ALPHA WITH DASIA AND YPOGEGRAMMENI;Ll;0;L;1F01 
> 0345;;;;N;;;1F89;;1F89