使用AFNetworking请求数据如果网页的数据是gbk类型的话,用UTF8转换的话,结果会是nil,这个时候我们需要用gbk编码做转换,将我们通过网络请求获得的NSData数据进行如下转化:
//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一样需要设置下manager的responseSerializer和requestSerializer