html - XCode,iOS : Parsing HTML encoding with hpple

标签 html ios xcode parsing hpple

我在 XCode 中使用 hpple 解析网页时遇到编码问题。

- (void)loadTutorials {

NSURL *tutorialsUrl = [NSURL URLWithString:@"http://qrz.si/members/s55db/"];
NSData *tutorialsHtmlData = [NSData dataWithContentsOfURL:tutorialsUrl options:NSASCIIStringEncoding error:nil];


TFHpple *tutorialsParser = [TFHpple hppleWithHTMLData:tutorialsHtmlData];

NSString *tutorialsXpathQueryString = @"//td[@class='data']";
NSArray *tutorialsNodes = [tutorialsParsersearchWithXPathQuery:tutorialsXpathQueryString];


NSMutableArray *newTutorials = [[NSMutableArray alloc] initWithCapacity:0];
for (TFHppleElement *element in tutorialsNodes) {
    Tutorial *tutorial = [[Tutorial alloc] init];
    [newTutorials addObject:tutorial];


    for (TFHppleElement *child in element.children) {
        if ([child.tagName isEqualToString:@"img"]) {
           // NSLog([child objectForKey:@"src"]);
        } else if ([child.tagName isEqualToString:@"p"]) {
            //NSLog([[child firstChild] content]);
            tutorial.title = [[child firstChild] content];
        }
    }
}

_objects = newTutorials;
[self.tableView reloadData];
}

正如来源指出的那样,页面应该是 UTF-8,但我得到了奇怪的字符。

如何强制更改数据编码?任何帮助将不胜感激!

最佳答案

options:NSASCIIStringEncoding

在这里没有用,文档指出这不是正确的方法。

要设置编码,必须编辑 Matt Gallagher 编写的 XPathQuery.m,这是我在同一教程中获得的。更改是可见的,但没有任何效果,因为该网站显然是 UTF-8 编码的。

问题出在服务器端,管理员为我提供了良好的旧式纯 XML :)

关于html - XCode,iOS : Parsing HTML encoding with hpple,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14462964/

相关文章:

html - CSS 中的文本对齐适用于 <td> 但不适用于 <th>

javascript - 上传前显示图像预览时出错

html - IE11 触摸设备上单指滚动与两指滚动的区别

ios - Parse.com 查询超过 1000 个对象

html - 无法访问元素 margin-left

ios - 如何将视频数据转换为NSURL

iphone - 只运行一次方法(在启动时)?

ios - 按钮点击时的 UIDatePicker

swift - 按下按钮时打印输出并且有一个 segue - Xcode Swift Apple Watch?

ios - Xcode - 我更改了产品模块名称,现在自动完成功能将不再起作用(使用新模块名称时)