首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >函数来检测来自NSURLResponse的NSStringEncoding?

函数来检测来自NSURLResponse的NSStringEncoding?
EN

Stack Overflow用户
提问于 2013-07-24 21:55:22
回答 1查看 2.5K关注 0票数 2

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

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

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

代码语言:javascript
复制
 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];
EN

回答 1

Stack Overflow用户

发布于 2013-11-10 10:04:49

有一个更好的方法。

您可以从URLResponse获取字符串形式的编码名称,然后搜索适当的NSStringEncoding。

代码语言:javascript
复制
NSString *encodingName = [aURLResponse textEncodingName];
NSStringEncoding encodingType = CFStringConvertEncodingToNSStringEncoding(CFStringConvertIANACharSetNameToEncoding((CFStringRef)encodingName));

此外,encodingName可能为nil,如果所提供的encodingName没有适当的结果,则encodingType变量的结果值将无效。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17836111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档