Ich habe momentan ein großes Problem beim Stringvergleich mit Umlauten und der Funktion WideCompareText. Hier ein paar Beispiele:
- WideCompareText('a', 'b') = -1 ('a' ist kleiner als 'b')
- WideCompareText('aa', 'ab') = -1 ('aa' ist kleiner als 'ab')
- WideCompareText('aaa', 'ab') = -1 ('aaa' ist kleiner als 'ab')
- WideCompareText('a', 'ä') = -1 ('a' ist kleiner als 'ä')
- WideCompareText('aa', 'aä') = -1 ('aa' ist kleiner als 'aä')
Soweit ist alles wie erwartet. Folgendes stimmt aber nicht mehr:
- WideCompareText('aaa', 'aä') = 1 ('aaa' ist größer als 'aä')
Warum soll 'aaa' größer als 'aä' sein?
Die Spracheinstellungen stehen auf de_DE.
Irgendwelche Ideen, warum das so ist und wie ich einen vernünftigen Stringtest machen kann?
PS: War mir nicht sicher, in welches Forum ich das schreibe. Würde evtl. auch zu Windows API passen.