NSString
と比較して問題があります。 localizedCaseInsensitiveCompare
:またはNSString
の他のcompare
:メソッドは、拡張アスキー文字セットで私に間違った結果を返しています。例えばコードの下に、比較の後、noString
はenString1
の後になければなりません。iPhone拡張ASCIIまたはLatin 1 Unicode文字セットを持つNSStringの比較
私はどのように問題を解決できますか?
NSString * noString = @"ÅåÆæØøab"; // ASCII values, 197, 229, 198, 230, 216, 248, 97, 98
NSString * enString1 = @"fbcd";
NSString * enString2 = @"bbcd";
NSString * enString3 = @"zbcd";
NSLog(@"%i", [enString1 localizedCaseInsensitiveCompare:enString2]); // 1
NSLog(@"%i", [enString1 localizedStandardCompare:noString]); // 1, should be -1
NSLog(@"%i", [enString1 localizedCaseInsensitiveCompare:noString]); // 1, should be -1
"aa" compareTo "aå"は昇順に戻ります。そのとおり。しかし、
"aa" compareTo "aæ"は戻ってきます降順、なぜですか? 「あお」も同じです。