Reputation: 3
When I convert NSString to NSData, after convert from NSData to NSString
NSString *input = @"ステータス";
NSData *output = [NSData dataWithBytes:[input UTF8String] length:[input length]];
NSString *output2 = [[NSString alloc] initWithData:output encoding:NSUTF8StringEncoding];
The output2 is nil.
If input is alphabet character, it ok.
Upvotes: 0
Views: 310
Reputation: 539985
The correct conversion is
NSData* output = [input dataUsingEncoding:NSUTF8StringEncoding];
The problem with your code is that [input length]
gives the number of Unicode characters, not the number of UTF-8 bytes.
Upvotes: 4