忍者ブログ

佐崎司と愉快な仲間達

ゲーム、アニメ、CG、iOS開発など思いついたことを記事にしています。 管理人が3人いますので、記事にまとまりはないと思います。 iPhoneアプリのレビュー依頼も受け付けています。

iOSのNSStringの文字列比較に関して2

わか

iOSのNSStringの文字列比較に関して記載します。
文字列の比較に関して、比較する文字列間で文字コードが違うとcompare, isEqualToString両方共一致しないようです。
なので、文字コードを同じにしてから比較する必要があります。
以下の例ではstr1文字列を一旦charのUTF8に変換後、NSStinrgに戻す際に
再度UTF8に変換しています。

NSString *str1;    // Shift-JisのABC 文字列が入っているとします
NSString *str2 = @"ABC" // UTF8の文字コード
str1 = [NSString stringWithCString:(char*)[str1 UTF8String]
        encoding:NSUTF8StringEncoding];

if ([str1 compare:str2] == NSOrderSame) {
    NSLog(@"一致");
}


通常このような文字コードの違いはおきませんが、ファイルから読み込んだ
文字列を使用する際に
発生します。
このやり方が最適解とは思えませんが、今のところ他に方法が見つかりませんでした。
何か間違いあれば、コメントお願いします。

拍手[0回]

PR