抓取网页的信息返回的data用utf8编码得到的字符串是null,求解。

表示要抓取网页的数据,url是这个 https://ftp.lib.hust.edu.cn/search~S0*chx/?searchtype=X&searcharg=java&sortdropdown=-&SORT=D&extended=0&SUBMIT=%E6%A3%80%E7%B4%A2

如你所见这是个学校图书馆的藏书信息,我用异步get请求获得了data,但是编码的时候用utf8返回的确是null,但是data的确是有值的。而我用ascii编码能返回信息,可是所有中文均是乱码,我NSLog(@"%C")的格式输出得到的信息是完全正确的,但是我要对其中的数据进行处理,因此不能这么做,请问各位大大到底为啥utf8编码不成。

(ps:求一个比较好用的html解析的库)

看了下data转string的文档,像是有非法数据的情况下,会返回nil。文档于下图:

然后我看了下你给的url,响应中有些乱码,可能会导致上面的方法解析失败,如图:

您好,没有及时给您回复实在很抱歉。我想再请教下您,就是我如果用的ascii编码的话也是和您的一样是只有英文是正确的,所有中文都是乱码,但是查看网页源码的时候表示的确用的是utf8编码的,可是用utf8编码返回的是null。最近我用的一个新的库叫objective-c html parser 。部分中文很顺利获取的了。不能获取的我比较了下发现是因为网页该标签源码中有??这样的乱码,我估计是这个原因导致了我的问题。请问您有什么解决办法可以跳过??这个或者把他给正确编码吗?

应该就是网页中掺入了非UTF8编码的数据
我觉得就如你所说,用容错性更好的库解析,其它方法等大牛回答吧