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];
しかし、私はこのような方法でやったが、解決できなかった.
 
最後に、次の方法で解決しました.
 
- (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