頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


NSData ←→ NSString変換で文字化け

NSData ←→ NSStringというデータの型の変換処理を頻繁にするのでカテゴリ作ってたんだ。
実装部分はこんな感じ。
//NSString → NSData
@implementation NSString (ConvertToNSData)
-(NSData *)toData
{
    return [self dataUsingEncoding:NSUTF8StringEncoding];
}
@end
↑このようにしてNSData型にしたのを戻す時は次のようにしてたんだ。
//NSData → NSString
@implementation NSData (ConvertToNSString)
-(NSString *)toString
{
    return [NSString stringWithUTF8String:[self bytes]];
}
@end
ところが、どうも↑これだと文字化けする場合があってね。
//NSData → NSString
@implementation NSData (ConvertToNSString)
-(NSString *)toString
{
    return [[[NSString alloc] initWithData:self encoding:NSUTF8StringEncoding] autorelease];
}
@end
↑このように修正したよ。

iphone - Convert UTF-8 encoded NSData to NSString - Stack Overflow
↑ここによると文字列が\0で終わるかどうかでどちらを使うか選ぶといいんだってさ。

<< performSelector:withObject:で送信先が引数無しでもOKなのは仕様?   TopPage  プロパティ名はnewで始めてはいけない >>

コメント


管理者にだけ表示を許可する
 

トラックバック

トラックバックURL
http://ringsbell.blog117.fc2.com/tb.php/775-e87dd96c




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.

FC2Ad