iOS使用AFNetworking请求数据进行GBK编码(OC和swift)

使用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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容