0

好的,所以这不仅适用于谷歌,而且在我的情况下,它确实适用于我试图从用户在我的应用程序中执行的谷歌搜索结果中下载内容,但它无法正常工作。null我在其他几个网站(bing、youtube 等)上尝试了相同的代码,它返回了所请求页面的 HTML 内容,但是,对于 google,它只是在该行注销NSLog()并继续执行其余代码:

NSString *url = @"http://www.google.ca/";
    NSURL *urlRequest = [NSURL URLWithString:url];
    NSError *err = nil;

    NSString *html = [NSString stringWithContentsOfURL:urlRequest encoding:NSUTF8StringEncoding error:&err];

    NSLog(@"%@",html);

好像是内存的问题?NSStringGoogle 的 HTML 对数据类型来说太多了?如果是这样,我将使用什么来访问 Google?因为我试了试它http://www.google.ca/404是否会下载 404 错误,它确实如此。

提前致谢!

4

1 回答 1

0

事实证明,UTF-8 编码是错误的。所以为了解决这个问题并仍然支持 UTF-8,我确保它首先尝试 UTF-8 编码,如果它返回错误,那么它会再次尝试使用 ASCII 编码,如下所示:

 [NSString stringWithContentsOfURL:urlRequest encoding:NSASCIIStringEncoding error:&err];

通过这种方式,您可以在 UTF-8 和 ASCII 之间循环,并且出错的可能性要小得多。

我希望这可以帮助其他人解决这个问题。

于 2013-07-21T20:29:27.653 回答