1. 程式人生 > >linux用java解析html出現中文亂碼問題

linux用java解析html出現中文亂碼問題

一,用java解析html文件遇到的問題

  1. 在windows環境下用BufferedReader讀取utf-8的html檔案時,沒有任何亂碼問題,但是在linux環境下讀取的時候就出現亂碼了,不知道什麼問題引起的。
  2. 後來用FileInputStream讀取,用new String方式去轉換,發現大部門亂碼問題解決了,但是由於是1024位元組去讀的所以存在一個問題,部分位元組沒讀全,就去new String導致亂碼問題。

二,解決方式

  1. 個人總結了下問題,應該試html中存在一些特殊字元,導致普通的方式在linux環境下存在轉碼問題,百度了一下,發現通過jsoup來解析html,會解決此類問題。
  2. 用法如下
//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());