遇到XML-GB2312网页编码的处理方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了遇到XML-GB2312网页编码的处理方法相关的知识,希望对你有一定的参考价值。

1. 把请求的数据转化成data

2.XML文件的前40个字节 

    NSData * xmldata = [self.data subdataWithRange:NSMakeRange(0,40)];

    

3.以UTF-8编码进行解码

    NSString *xmlstr = [[NSString alloc] initWithData:xmldata encoding:NSUTF8StringEncoding];

    

    //搜索GB2312,如果找到,就把GB2312 改成 utf-8 (ps:替换字符串)

    if ([xmlstr rangeOfString:@"\"GB2312\"" options:NSCaseInsensitiveSearch].location != NSNotFound)

    {

        NSLog(@"遇到:GB2312 encoding founded.正在把GB2312改成utf-8");

        

        NSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);

        NSString *utf8str = [[NSString alloc] initWithData:self.data encoding:enc];

        utf8str = [utf8str stringByReplacingOccurrencesOfString:@"\"GB2312\"" withString:@"\"utf-8\"" options:NSCaseInsensitiveSearch range:NSMakeRange(0,40)];

//新的数据,可以进行正常解析

        NSData *newData = [utf8str dataUsingEncoding:NSUTF8StringEncoding];

 

    }

以上是关于遇到XML-GB2312网页编码的处理方法的主要内容,如果未能解决你的问题,请参考以下文章

NodeJS: 处理request网页乱码问题

node爬虫解决网页编码为gb2312结果为乱码的方法

爬虫之网页乱码解决方法(gb2312 -> utf-8)

jsp乱码处理的7中方法

python爬虫出现菱形问号乱码的解决方法

Qt使用MSVC编译器中文乱码解决方法