ios非UTF-8格式的网页解析

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

怎么得到非UTF-8格式的网页要解析的代码内容,这也是比较关键的一步,剩余的解析过程网上很多,这里就不在赘述了,如果实在有需要得话,再跟我联系。

1、以百度(http://www.baidu.com)为例,其网页格式为gb2312,新建一个项目project,在-(void)viewDidLoad内输入一下内容:
NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
NSStringEncoding encode = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
NSData *data = [NSData dataWithContentsOfURL:url];//得到的是十六进制数据
NSLog(@”data:%@”,data);
NSString *str = [[NSString alloc] initWithData:data encoding:encode];
NSLog(@”str:%@”,str);

第一个NSLog输出的部分内容截图:

第二个NSLog输出的部分内容截图:

这就是能识别得GB2312格式的网页,通过“右击–查看元素”可以得到,也是我们要解析的内容。

实际上,上面的代码还可以直接写成:
NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"];
NSStringEncoding encode = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000);
NSString *str = [[NSString alloc] initWithContentsOfURL:url encoding:encode error:nil];
NSLog(@”htmlEncoding:%@”,str);

得到得内容和第一种情况下第二个输出数据是一样的。

2、考虑了一下,我把UTF-8格式的网页解析第一步也写下,以便对比。以新浪微博( http://www.weibo.com)为例,其网页格式为UTF-8的,在-(void)viewDidLoad内输入一下内容:

NSURL *url2 = [NSURL URLWithString:@"http://www.weibo.com"];
NSString *str2 = [NSString stringWithContentsOfURL:url2 encoding:NSUTF8StringEncoding error:nil];
NSLog(@”str2:%@”,str2);
输出的部分内容截图 :

这正是我们要解析的内容,剩余的解析需要添加对应的库、文件、修改Build Settings设置等


Unity JSON解析乱码与崩溃?UTF-8 BOM编码问题深度解析与解决方案 字符编码数据交换和存储的基础,它定义了字符与二进制数据之间的映射规则。UTF-8作为Unicode的一种可变长度编码实现,因其兼容ASCII和高效性,已成为网络传输和文件存储的事实标准。然而,UTF-8 BOM(字节顺序标记)作为一个可选的元数据头,虽旨在标识编码,却常与严格的**数据格式规范**(如JSON RFC 8259)冲突,导致解析器在首个字节就遭遇法字符,从而引发解析失败、乱码或平台依赖的崩溃。在**Unity开发**实践中,此问题尤为隐蔽,常源于不同工具(如Windows记事本)对BOM的 阅读详情

相关推荐

OpenSSL玩转证书链:从Windows CA根证书到签发多域名/IP的服务器证书全攻略

本文详细介绍了如何使用OpenSSL在Windows环境下构建私有CA体系,从创建CA根证书到签发支持多域名/IP的服务器证书的全流程。通过实战指南,读者可以掌握零成本证书管理技术,灵活配置SAN扩展,并了解在Nginx、Apache等主流服务器中的证书部署方法,适用于企业内网、IoT设备等HTTPS加密场景。

weixin_28731223的博客 419

iOS】如何判断文本文件的字符编码格式

总体思路: 遍历所有的字符编码,能正确读取输出转换的就是文本文件的编码格式。 代码如下: [objc] view plaincopy //   //  main.m   //  检测文本字符编码格式的小技巧   //   //  Created by 杜子兮 (duzixi) on 14-6-21.   //  

zhanglinxu的专栏 1898

从Jira到Notion:用Sequential Thinking重构你的敏捷工作流(含GPT-6配置模板)

本文探讨了如何利用Sequential Thinking这一AI认知模型,重构敏捷开发工作流。通过连接Jira、Notion等工具,构建动态依赖图谱,实现从被动响应到主动规划的转变。文章提供了详细的配置教程和GPT-6配置模板,帮助团队实现任务自动拆解、智能看板生成与跨平台协调,从而提升项目管理效率。

gpt4scribbler的博客 190

Nodejs抓取utf8字符编码的页面

我在抓搜房网数据的时候发现它的html页面编码不是utf8编码,在网上找了下有说使用node-iconv模块的:http://www.cnblogs.com/fengmk2/archive/2011/05/15/2047109.html node-iconv:https://github.com/bnoordhuis/node-iconv 但是我nodev0.6.9用npm安装node

服务器端攻城师 1460

python 网络爬虫 爬取网页数据时网站字符集不是默认编码UTF-8”,导致爬取出来的网页数据出现其它语言的乱码情况,需要手动添加网页相对应的字符集encoding=“ ”

python网络爬虫爬取网页数据时网站字符集不是默认编码UTF-8”,导致爬取出来的网页数据出现其它语言的乱码情况,需要手动添加网页相对应的字符集encoding=“”

m0_57781407的博客 1272

ioS开发--Warning警告处理

去除警告的方法: #pragma clang diagnostic push #pragma clang diagnostic ignored"-Wunused-function" local void free_linkedlist(ll) linkedlist_data* ll; { free_datablock(ll->first_block); ll->first_blo

zzzzzdddddxxxxx的专栏 1万+

ios html 编码转换,iOS开发表情符号emojiUTF-8编码、Unicode、HTML显示

释放双眼,带上耳机,听听看~!一、把含有表情的字符串编码- UTF-8- (NSString *)emojiEncode{NSString *uniStr = [NSString stringWithUTF8String:[self UTF8String]];NSData *uniData = [uniStr dataUsingEncoding:NSNonLossyASCIIStringEnc...

weixin_30676635的博客 1035

了解ASCII、gb系列、Unicode、UTF-8的区别

转自:http://www.douban.com/note/334994123/?type=rec ● 为什么有这么多编码?● UTF-8和GB2312有什么区别?● 我们在国内做网站是用UTF-8编码格式还是GB2312编码格式好?1. ASCII码美国:八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。ASCII码一共规定了128个字符的编码,这128个...

baeryu4478的博客 155

[ios] iOS html解析1(包含中文字符)

  教你怎么写搜索条件:http://www.raywenderlich.com/14172/how-to-parse-html-on-ios     NSLog(@"%@",[element.attributes objectForKey:@"value"]); //返回一个 字典   HTMLParser方法可以参考https://github.com/zootreeves/Obj...

ipoolo的专栏 111

iOS html解析1(包含中文字符)

HTMLParser方法可以参考https://github.com/zootreeves/Objective-C-HMTL-Parser TFHpple方法的使用可以看 https://github.com/topfunky/hpple           TFHpple,因为它很简单,也好用,但是它的功能不是很完完善。比如,不能获取children node。它是用X

颜忠贤 JoesRain 579

编码 data:text/html;c,iOS 用TFHpple抓取GB-2312编码的html页面,页面返回编码错误

HTMLParser方法可以参考https://github.com/zootreeves/Objective-C-HMTL-ParserTFHpple方法的使用可以看https://github.com/topfunky/hppleTFHpple,因为它很简单,也好用,但是它的功能不是很完完善。比如,不能获取children node。它是用XPath来定位和解析html或者xml。hpple解...

weixin_35698059的博客 206

iOS解决方案】网络请求返回GB2312格式的xml数据转成UTF-8后为空(适用于论坛bbs)

一些高校的bbs由于历史久远,没有适应新的数据结构,请求返回的数据还是xml格式的,而现在常用的返回是json,这是个很头疼的地方,碰到的问题网上很难搜到资料,走了很多弯路。 现在具体讲一下在解析返回xml过程中碰到的问题,希望能有些借鉴:

阿-凡提de小毛驴 1687

mysql存json将utf8编码 去掉_MySQL对JSON类型UTF-8编码导致中文乱码探讨

继上文发表之后,结合评论意见并亲自验证最终发现是编码的问题,但是对于字符编码还是有点不解,于是乎,有了本文,我们来学习字符编码,在学习的过程中,我发现对于MySQL中JSON类型的编码导致数据中文出现乱码还有可深挖之处,接下来我们来分析一下,若有错误之处,还请批评指出。评论中指出任何不在基本多文本平面的Unicode字符,都无法使用MySQL的utf8字符集存储,包括 Emoji 表情(Emoji...

weixin_35647899的博客 246

php ios utf8编码,ios,utf-8_iOS开发, 如何通过HTTP Post发送这个符号"&"到服务器?,ios,utf-8 - phpStudy...

iOS开发, 如何通过HTTP Post发送这个符号"&"到服务器?用的是系统自带的 NSURLRequest, 用post传输, 数据写在body里, 别的符号都没问题, 唯独 "&" 这个符号不行, 一旦包含这个符号服务器就不接受. 但是通过网页或者android输入&符号就没问题.如果把&转化成escape string , 也就是说 & 转化成%26...

weixin_42515561的博客 171

由iPhone emoji问题牵出UTF-16编码UTF-8编码查询

前言 iOS平台,系统输入法emoji表达。表达式不能在很多其他平台上显示,尤其是在Android。Symbian系统。我决定到底要探索1;我指的是一些知识: (注意:该博文已经如果读者已经了解utf-8的知识了) 1. 笔者提供的“将字符串转化成unicode和utf-8”的工具。点击下载 2. 维基百科utf-16点击打开 3. 笔者博文,utf-...

weixin_30940783的博客 165

Qt开发中QString转std::string乱码问题:编码原理与UTF-8解决方案

字符编码是计算机处理文本的基础概念,它定义了字符与二进制数据之间的映射规则。在跨平台开发中,不同系统默认编码的差异会导致文本显示乱码,其核心原理在于编码解码规则的不匹配。正确处理编码问题对软件国际化、数据交换和系统兼容性具有重要技术价值,特别是在涉及中文等多语言文本的场景中。本文聚焦于Qt框架下的字符串处理,深入解析QString采用UTF-16编码而std::string无固定编码的特性差异,并提供基于UTF-8的跨平台解决方案。通过分析编码转换的底层机制,帮助开发者从根本上理解乱码成因,掌握toUtf8

weixin_33913332的博客 2464

星星表情符号的html代码,表情符号emojiUTF-8编码、Unicode、HTML显示

一、把含有表情的字符串编码 ---- UTF-8- (NSString *)emojiEncode{NSString *uniStr = [NSString stringWithUTF8String:[self UTF8String]];NSData *uniData = [uniStr dataUsingEncoding:NSNonLossyASCIIStringEncoding];NSSt...

weixin_39671621的博客 2568
上一篇: IOS中四种解析JSON的方法(IOS5自带支持方法、JSONKit、SBJson、TouchJson)
下一篇: 如何去旧工程适配iOS6和iPhone5
NJP
NJP
博客等级 码龄14年 48粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值