IOS学習の道20(プログラムjson変換データの中国語文字問題解決)
1734 ワード
iosがwebのjsonデータを要求するとき、文字化けしの問題がよく発生します.
たとえば、リクエストの結果は次のようになります:「U 00 e 5U 00 a 5U 00 bdU 00 e 8U 00 aeU 00 a 4」
ネットで調べた解決策は、
データを解析するときは、NSdataオブジェクトにデータを格納してから、NSData*jsondata=[requestresponseData];NSString*jsonString = [[NSStringalloc]initWithBytes:[jsondatabytes]length:[jsondatalength]encoding:NSUTF8StringEncoding];
しかし、私はこのような方法でやったが、解決できなかった.
最後に、次の方法で解決しました.
転載は以下のことを明記してください.
本明細書から:クリックしてリンクを開くhttp://blog.csdn.net/wildcatlele
新浪微博:http://weibo.com/u/3202802157
たとえば、リクエストの結果は次のようになります:「U 00 e 5U 00 a 5U 00 bdU 00 e 8U 00 aeU 00 a 4」
ネットで調べた解決策は、
データを解析するときは、NSdataオブジェクトにデータを格納してから、NSData*jsondata=[requestresponseData];NSString*jsonString = [[NSStringalloc]initWithBytes:[jsondatabytes]length:[jsondatalength]encoding:NSUTF8StringEncoding];
しかし、私はこのような方法でやったが、解決できなかった.
最後に、次の方法で解決しました.
- (NSString *)replaceUnicode:(NSString *)unicodeStr {
NSString *tempStr1 = [unicodeStr stringByReplacingOccurrencesOfString:@"\\u" withString:@"\\U"];
NSString *tempStr2 = [tempStr1 stringByReplacingOccurrencesOfString:@"\"" withString:@"\\\""];
NSString *tempStr3 = [[@"\"" stringByAppendingString:tempStr2] stringByAppendingString:@"\""];
NSData *tempData = [tempStr3 dataUsingEncoding:NSUTF8StringEncoding];
NSString* returnStr = [NSPropertyListSerialization propertyListFromData:tempData
mutabilityOption:NSPropertyListImmutable
format:NULL
errorDescription:NULL];
// NSLog(@"Output = %@", returnStr);
return [returnStr stringByReplacingOccurrencesOfString:@"\\r\
" withString:@"
"];
}
転載は以下のことを明記してください.
本明細書から:クリックしてリンクを開くhttp://blog.csdn.net/wildcatlele
新浪微博:http://weibo.com/u/3202802157