你的位置:首页 > 软件开发 > 操作系统 > HTTP请求返回的NSData无法转换为NSString

HTTP请求返回的NSData无法转换为NSString

发布时间:2015-11-19 00:00:33
最近在做的一个项目中有一个功能是有一个网页,模拟http请求获取到这个网页返回的相应的数据。在请求完成后获取到的数据为NSData类型,按照我们通常的转换为NSString的方法:NSString *str = [[NSString alloc] initWithData:res ...

最近在做的一个项目中有一个功能是有一个网页,模拟http请求获取到这个网页返回的相应的数据。

在请求完成后获取到的数据为NSData类型,按照我们通常的转换为NSString的方法:

NSString *str = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];

但是发现转换后的str是nil。

一开始以为获取到的data为空,可是再三确认后发现data确实有数据,之后尝试了各种转换方法都不起作用。

后来经过查询原来那个网页的编码格式为gb2312,通常的转换方法不行。

所以需要另外的编码格式进行转化,方法为:

NSStringEncoding encoding = CFStringConvertEncodingToNSStringEncoding (kCFStringEncodingGB_18030_2000);

NSString *str = [[NSString alloc] initWithData:responseData encoding:encoding];

这样就可以正确的进行NSString的转换。

其实还是自己对编码格式不熟悉才走了很多的弯路。

   


原标题:HTTP请求返回的NSData无法转换为NSString

关键词:string

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录