AFHTTPSessionManager* manager = [AFHTTPSessionManager manager];
manager.requestSerializer = [AFHTTPRequestSerializer serializer];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
[manager GET:urlString parameters:nil progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject){
NSStringEncoding gbkEncoding = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
NSString* str = [[NSString alloc] initWithBytes:[responseObject bytes] length:[responseObject length] encoding:gbkEncoding];
}failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error){
NSLog(@"%@", error);
}];
如上,我今天在用AFNetworking获取新浪的股票信息时,返现返回的数据是无法直接用utf-8转码的,转码后的结果为空,然后用别的转码方式如NSASCIIStringEncoding,发现中文是乱码的。
解决方法就是先把获取的数据给转码成gbk,因为写过java的都清楚,java的默认编码是gbk,然后就能正常的获取数据了。