使用AFNetworking請求數(shù)據(jù)如果網(wǎng)頁的數(shù)據(jù)是gbk類型的話,用UTF8轉(zhuǎn)換的話,結(jié)果會是nil,這個時候我們需要用gbk編碼做轉(zhuǎn)換,將我們通過網(wǎng)絡(luò)請求獲得的NSData數(shù)據(jù)進(jìn)行如下轉(zhuǎn)化:
//GBK編碼
NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
NSString * encodeStr = [[NSString alloc] initWithBytes:[resultdata bytes] length:[resultdata length] encoding:enc];
如果沒有成功,需要寫上這幾句代碼:
AFHTTPSessionManager * manager = [AFHTTPSessionManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
manager.requestSerializer = [AFHTTPRequestSerializer serializer];
swift的寫法如下
//GBK編碼
let enc = CFStringConvertEncodingToNSStringEncoding(UInt32(CFStringEncodings.GB_18030_2000.rawValue))
let string : String = NSString(data: responseObj as! Data, encoding: enc) as! String
var result:String = string.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines)
如果沒有成功和oc一樣需要設(shè)置下manager的responseSerializer和requestSerializer