nekohtml中解析中出现中文乱码问题

本文介绍了解决HTML文档解析过程中出现乱码的方法。通过调整nekohtml解析器的配置,可以忽略HTML文档中指定的字符集,从而避免因不支持的字符导致的乱码现象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

后来,确认问题应该出现在nekohtml(HtmlParser默认使用的html文档解析包)身上,

于是下载nekohtml查看源码,发现默认情况下,如果nekohtml在页面中找到charset的设置,他将使用页面中指定的编码集,所以大量的页面都用页面中指定的GB2312进行解析,这样如果页面中存在GB2312没有包含的字符时就会出现乱码,在HtmlScanner中有一个特征(Feature),可以通过设置其值来关闭这个功能。

/** 

   
* Ignore specified charset found in the <meta equiv='Content-Type'    
* content='text/html;charset=…'>tag.   
*/   
public static final String IGNORE_SPECIFIED_CHARSET
 ="http://cyberneko.org/html/features/scanner/ignore-specified-charset";

在代码中这样做:

parser.setFeature("http://cyberneko.org/html/features/scanner/ignore-specified-charset",true);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值