网页出现?这种符号,无法获取相应数据,求解决。

如题所示,我要获取一个网页的数据,用的是Objective-C HTML Parser 这个库,挺好用的。但是每当遇到了??这样的字眼那么相应的那个标签里的内容就获取不了了,请问有什么解决办法吗,在线请教?

没有用过Objective-C HTML Parser。但是用过别的库解析HTML获取网页数据。

我之前也碰到过这样的问题。之所以会出现乱码是因为编码格式不对。

//我当时用下面这个代码解决的。在导入网页data数据之前转换一次。首先你得看那个网页得源代码。看到头charset=GBK。这个是等于GBK还是GB2312之类的。有些中文网站就是这些编码,但是解析出来会出现错误。下面是GBK的网站转化代码。如果是GB2312就把下面的GBK换成GB2312就可以。

- (NSData *)toUTF8AndReplace:(NSData *)sourceData

{

CFStringRef gbkStr = CFStringCreateWithBytes(NULL, , , kCFStringEncodingGB_18030_2000, false);

if (gbkStr == NULL)

{

return nil;

}

else

{

NSString *gbkString = (__bridge NSString *)gbkStr;

NSString *utf8_string = ;

return ;

}

}

在你要解析之前,先转化data网页数据

NSURL *url=NSURL URLWithString:@"你要解析的网址http://www.xxxxxx.com"];

NSData *htmlData=NSData dataWithContentsOfURL:url];

NSData *tohtmlData = self toUTF8AndReplace:htmlData];


然后拿tohtmlData这个data去解析。估计就没有乱码了。试试看行不行。

上面的版本格式有错误
应该是NSURL *url=;

你好,回晚了不好意思。我请求返回来的header显示charset就是UTF-8的。那这个方法是不是就不能用了?

实在不行就试试看换个库去获取网页数据试试看?