搜尋
首頁JavaJava基礎java檔案讀取中文亂碼的原因與解決方法

java檔案讀取中文亂碼的原因與解決方法

最近遇到一個問題,Java讀取文字檔(例如csv檔、txt檔等),遇到中文就變成亂碼。 (建議:java影片教學

讀取程式碼如下:

List<String> lines=new ArrayList<String>();    
BufferedReader br = new BufferedReader(new FileReader(fileName));  
String line = null;  
while ((line = br.readLine()) != null) {   
      lines.add(line);  
}  
br.close();

原理

Java的I/O類別處理如圖:

Reader 類別是Java 的I/O 中讀取字元的父類,而InputStream 類別是讀取位元組的父類,InputStreamReader 類別就是關聯位元組到字元的橋樑,它負責在I/O 過程中處理讀取位元組到字元的轉換,而具體位元組到字元的解碼實作它由StreamDecoder 去實作。

在 StreamDecoder 解碼過程中必須由使用者指定 Charset 編碼格式。值得注意的是如果你沒有指定 Charset,將使用本地環境中的預設字元集,例如在中文環境中將使用 GBK 編碼。

java檔案讀取中文亂碼的原因與解決方法

總結:Java讀取資料流的時候,一定要指定資料流的編碼方式,否則會使用本地環境中的預設字元集。

經過上述分析,修改之後的程式碼如下:

List<String> lines=new ArrayList<String>();  
BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream(fileName),"UTF-8"));  
String line = null;  
while ((line = br.readLine()) != null) {  
      lines.add(line);  
}  
br.close();

更多java知識請關注java基礎教學欄位。

以上是java檔案讀取中文亂碼的原因與解決方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具