標籤:ble err 就會 bsp src read sdi 為什麼 gbk
AFNetWorking升級到3.1的時候網路請求成功但是返回的是一堆16進位的數值。
傳回值如下:
問後台說返回的格式一直是gbk格式的問題,google了一下找到瞭解決的辦法
代碼內容為:
1.將請求到的資料裝到MutableData中
NSMutableData *mydata = [NSMutableData dataWithData:responseObject];
2.規定編碼格式
NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
3.將有亂碼的 NSMutableData類型 mydata 轉為規定了格式的NSString 類型strdata
NSString* strdata = [[NSString alloc]initWithData:mydata encoding:enc];
4.在將NSString類型轉為NSData
NSData *data = [strdata dataUsingEncoding:NSUTF8StringEncoding];//這樣解決的亂碼問題
data = data.copy;
5.將資料按Json解析,成功獲得字典資料
NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];
將此段代碼放入你的網路解析中。你收到的16進位代碼就會轉換成正常的內容格式。
遺留問題:
1.AFNetWorking3.1為什麼不支援解析gbk格式的代碼?有知道的留言,不甚感激
AFNetWorking2.3升級AFNetWorking3.1的出現16進位數值的問題