解析JSON出現亂碼的解決方法

weixin_34198453發表於2017-01-17
3403640-5b01c9722fbc786d.png
Unicode轉換UTF8公式.png

最近在專案的版本迭代中突然發現介面上有一段亂碼:


3403640-69e1d5b0e67b9c7c.png

立馬去檢視返回資料:


3403640-2fbbdaa138b9c40e.png

返回的資料型別並無問題,但是賦值後po下就有問題了:
3403640-d4e66992c14df30a.png

兩種取值方式都是同樣的結果,基本確定是編碼的問題了,那就轉UTF8唄:
方式一:

NSString *str = [personInfoM.country stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

方式二:

NSString *str = CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault, (CFStringRef)personInfoM.country, nil, nil, kCFStringEncodingUTF8));

然而試了兩種轉換編碼方法都沒有什麼卵用
找了半天還是這個管用:

const char *c = [string cStringUsingEncoding:NSISOLatin1StringEncoding];
NSString *str = [[NSString alloc] initWithCString:c encoding:NSUTF8StringEncoding];

相關文章