iOS 小册iOS Swift && Objective-C

根据 NSHTTPURLResponse 获取编码格式

2016-11-15  本文已影响28人  fuyoufang

根据服务器返回的 NSHTTPURLResponse 获取数据编码格式:

- (NSStringEncoding)stringEncodingWithResponse:(NSHTTPURLResponse *)response {
    NSStringEncoding stringEncoding = NSUTF8StringEncoding;
    if (response.textEncodingName) {
        CFStringEncoding encoding = CFStringConvertIANACharSetNameToEncoding((CFStringRef)response.textEncodingName);
        if (encoding != kCFStringEncodingInvalidId) {
            stringEncoding = CFStringConvertEncodingToNSStringEncoding(encoding);
        }
    }
    return stringEncoding;
}

获取编码格式之后,就可以正确的解析服务器返回的数据了。

// data 为服务器返回的数据,stringEncoding 可以用上面的方法获取
NSString *string = [[NSString alloc] initWithData:data encoding:stringEncoding];

AFNetworking (3.1.0) 中有相关代码。

上一篇下一篇

猜你喜欢

热点阅读