html gb2312解析,求助

折腾好几天了,因为是新手,之前解析utf8都没遇到问题。

   用的是TFHpple,直接贴代码,请大虾帮忙瞧瞧,是哪里出问题了。谢谢!!!!!

直接读取retStr,这个是正常的。但是由于不是utf8编码的,不能直接用tfhpple解析,我现在是已经做了转换
了。解析还是乱码。导致tfhpple解析不到数据。

<pre name="code" class="html">-(void)startRequest
{
    NSString *message = @"http://www.laiwangbiaoju.com";
    NSURL *url = [NSURL URLWithString:[message URLEncodedString]];
    ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
    [request setDelegate:self];
    [SVProgressHUD showWithStatus:@"加载中..."];
    [request startAsynchronous];
}
- (NSString *)URLEncodedString
{
    NSString *result = (NSString *)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,(CFStringRef)self,NULL,CFSTR("!*'();:@&=+$,/?%#[]"),kCFStringEncodingUTF8));
    return result;
}
-(void)requestFinished:(ASIHTTPRequest *)request
{
     NSData *data = [request responseData];
     NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
     NSString *retStr = [[NSString alloc] initWithData:data encoding:enc];
     //NSString *retStr = [request responseString];
     //NSString *utf8HtmlStr2 = [retStr stringByReplacingOccurrencesOfString:@""
     //                                                           withString:@""];
     NSString *utf8HtmlStr2 = [retStr URLEncodedString];
     NSString *utf8HtmlStr = [utf8HtmlStr2 stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    //NSString *utf8HtmlStr = [retStr stringByReplacingOccurrencesOfString:@""
     //                                                          withString:@""];
    //NSString *utf8HtmlStr2 = [utf8HtmlStr stringByReplacingOccurrencesOfString:@"\"GBK\"" withString:@"\"utf-8\"" options:NSCaseInsensitiveSearch range:NSMakeRange(0,40)];
    //NSLog(@"retStr,%@",retStr);
    NSLog(@"retStr,%@",retStr);//此处显示正常
    NSLog(@"--------------------------------");
    NSLog(@"utf8HtmlStr,%@",utf8HtmlStr);
    NSLog(@"--------------------------------");//此处乱码
    NSData *htmlDataUTF8 = [utf8HtmlStr dataUsingEncoding:NSUTF8StringEncoding];
    //NSLog(@"htmlDataUTF8,%@",htmlDataUTF8);
    NSLog(@"--------------------------------");
    TFHpple *xpathParser = [[TFHpple alloc] initWithHTMLData:htmlDataUTF8];
    NSLog(@"numberOfRowsInSection");
    NSString *xpathQuery1 = [[NSString alloc] initWithFormat:@"//p[@class='title']"];
    NSArray *elements1  = [xpathParser searchWithXPathQuery:xpathQuery1];
    NSString *tmp;
    
    for (TFHppleElement * element in elements1) {
        tmp = [element text];
        NSLog(@"tmp %@",tmp);
        tmp = [element content];
        NSLog(@"tmp %@",tmp);
        if(tmp != nil)
        [key addObject:tmp];
    }
    [SVProgressHUD showSuccessWithStatus:@"加载完成"];
}

 

log信息分成两部分,

正常部分:

2014-06-10 00:45:27.331 laiwang3[1588:60b] key count = 0
2014-06-10 00:45:28.281 laiwang3[1588:60b] retStr,<!doctype html>
<html>
<head>
<meta charset="GBK" />
<title>本站新帖 - 来往镖局 - Powered by phpwind</title>
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<meta name="generator" content="phpwind v9.0 20130107" />
<meta name="description" content="【来往镖局】中的最新帖子列表" />

此处省略若干log.......

显示乱码部分:

aiwang3[1588:60b] --------------------------------
2014-06-10 00:45:28.311 laiwang3[1588:60b] utf8HtmlStr,%253C!doctype%2520html%253E%250A%253Chtml%253E%250A%253Chead%253E%250A%253Cmeta%2520charset=%2522GBK%2522%2520/%253E%250A%253Ctitle%253E%25E6%259C%25AC%25E7%25AB%2599%25E6%2596%25B0%25E5%25B8%2596%2520-%2520%25E6%259D%25A5%25E5%25BE%2580%25E9%2595%2596%25E5%25B1%2580%2520-%2520Powered%2520by%2520phpwind%253C/title%253E%250A%253Cmeta%2520http-equiv=%2522X-UA-Compatible%2522%2520content=%2522chrome=1%2522%253E%250A%253Cmeta%2520name=%2522generator%2522%2520content=%2522phpwind%2520v9.0%252020130107%2522%2520/%253E%250A%253Cmeta%2520name=%2522description%2522%2520content=%2522%25E3%2580%2590%25E6%259D%25A5%25E5%25BE%2580%25E9%2595%2596%25E5%25B1%2580%25E3%2580%2591%25E4%25B8%25AD%25E7%259A%2584%25E6%259C%2580%25E6%2596%25B0%25E5%25B8%2596%25E5%25AD




------------------------------------------

拜托各位路过的大虾教教小弟。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值