gpt4 book ai didi

iphone - 从 NSURLResponse 检测 NSStringEncoding 的函数?

转载 作者:可可西里 更新时间:2023-11-01 16:24:28 25 4
gpt4 key购买 nike

我只是想知道是否有任何现有类别或任何类型的函数会从 NSURLResponse 对象中返回 NSStringEncoding 常量。

我目前面临的问题是,当我将 Web 服务响应数据转换为 String 时,我将编码硬编码为 NSUTF8StringEncoding 然后它实际上会导致问题,因为我的 Web 服务有时会返回以 UTF8 编码的响应,有时以 ASCII 编码(好吧,虽然我不太确定所有编码,但是是的,响应中有时会有其他语言字符,如日语、中文等)

所以我的想法是在 NSURLResponse 上有一个类别来检测编码并返回例如。

 NSURLResponse * response = // NSURLResponse object ( web service response headers )
NSData * responseData = // NSData object ( web service response data )
NSStringEncoding encoding = [response stringEncodingUsed];
NSString * responseText = [[NSString alloc]initWithData:responseData encoding:encoding];

最佳答案

有更好的方法。

您可以从 URLResponse 中获取编码名称作为字符串,然后搜索合适的 NSStringEncoding。

NSString *encodingName = [aURLResponse textEncodingName];
NSStringEncoding encodingType = CFStringConvertEncodingToNSStringEncoding(CFStringConvertIANACharSetNameToEncoding((CFStringRef)encodingName));

此外,encodingName 可能为 nil,如果提供的 encodingName 没有合适的结果,则 encodingType 变量的结果值将不会是有效。

关于iphone - 从 NSURLResponse 检测 NSStringEncoding 的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17836111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com