Hatena::Groupiphone-dev

iOS プログラミングメモ

2009-01-13 (Tue)

マックっぽい文字の対応 16:56  マックっぽい文字の対応 - iOS プログラミングメモ を含むブックマーク

UTF8 でファイル名に濁点がついてると文字と濁点が分離しちゃって困った事になる場合があります。

例えば、「オーマイガ」って名前を付けようとすると「オーマイカ”」*1ってなっちゃうんですが、NSFileManager で fileExistsAtPath をするとどっちの場合でも TRUE が返ってきてわけわからん事になります。

ディレクトリの走査とかしようとするとすぐ出てくるんですけど、ファイル名を DB に保存したくなったりすると非常に困る。

と言うわけで、次のようにすれば濁点が仲間外れにならないようになるので、みんな幸せになれます。

NSString *before = // どこからかやってきた分離文字
NSMutableString *after = [NSMutableString stringWithString:before];
CFStringNormalize((CFMutableStringRef)after, kCFStringNormalizationFormC);

この例の場合だと、変数 after に合体後の文字列が入ります。特に戻り値を受け取ったりする必要はありません。

詳しくはこちら。

*1:表記はイメージです

トラックバック - http://iphone-dev.g.hatena.ne.jp/ktakayama/20090113