一,用java解析html文档遇到的问题
- 在windows环境下用BufferedReader读取utf-8的html文件时,没有任何乱码问题,但是在linux环境下读取的时候就出现乱码了,不知道什么问题引起的。
- 后来用FileInputStream读取,用new String方式去转换,发现大部门乱码问题解决了,但是由于是1024字节去读的所以存在一个问题,部分字节没读全,就去new String导致乱码问题。
二,解决方式
- 个人总结了下问题,应该试html中存在一些特殊字符,导致普通的方式在linux环境下存在转码问题,百度了一下,发现通过jsoup来解析html,会解决此类问题。
- 用法如下
//maven配置
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.11.3</version>
</dependency>
//实现代码
File htmlFile = new File("E:/a.html")
StringBuffer htmlSb = new StringBuffer();
Document parse = Jsoup.parse(htmlFile, "utf-8");
htmlSb.append(parse.html());