Java讀取文字檔案中文亂碼問題
最近遇到一個問題,Java讀取文字檔案(例如csv檔案、txt檔案等),遇到中文就變成亂碼。讀取程式碼如下:
後來百度和Google了之後,終於找到原因,還是從原理開始講吧:
Java的I/O類處理如圖:
Reader 類是 Java 的 I/O 中讀字元的父類,而 InputStream 類是讀位元組的父類,InputStreamReader 類就是關聯位元組到字元的橋樑,它負責在 I/O 過程中處理讀取位元組到字元的轉換,而具體位元組到字元的解碼實現它由 StreamDecoder 去實現,在 StreamDecoder 解碼過程中必須由使用者指定 Charset 編碼格式。值得注意的是如果你沒有指定 Charset,將使用本地環境中的預設字符集,例如在中文環境中將使用 GBK 編碼。
Java的I/O類處理圖
總結:Java讀取資料流的時候,一定要指定資料流的編碼方式,否則將使用本地環境中的預設字符集。
經過上述分析,修改之後的程式碼如下:
參考資料:
http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/
http://hi.baidu.com/annleecn/blog/item/154770ed900738db2e2e2151.html
相關文章
- Java 讀檔案寫檔案 韓文 中文 亂碼問題解決方案Java
- Java 中文 亂碼問題Java
- Java 解決中文亂碼問題Java
- Java,MySQL中文亂碼問題求教JavaMySql
- java處理中文亂碼問題Java
- Java GBK 中文亂碼問題分析Java
- Java Web開發中文亂碼問題JavaWeb
- 讀mysql中文亂碼問題解決方法MySql
- 解決PHP匯出CSV檔案中文亂碼問題PHP
- python讀取文字內容中文亂碼怎麼解決Python
- 如何使用Python讀取文字檔案並回答問題?Python
- Java IO操作之檔案讀取與寫入 無亂碼FileOutputStream FileInputStream使用-IO寫utf-8亂碼問題Java
- java 讀取.txt檔案時,注意的問題Java
- java中解決request中文亂碼問題Java
- EasyUI 中文亂碼問題UI
- MSSQL中文亂碼問題SQL
- 解決java web中safari瀏覽器下載後檔案中文亂碼問題JavaWeb瀏覽器
- asp.net中引入外部js檔案的中文亂碼問題ASP.NETJS
- C#讀取文字檔案和寫文字檔案C#
- 直播系統原始碼,讀取多行文字、讀取檔案分割多行文字原始碼
- springboot2.3.0讀取配置檔案中文亂碼+阿里簡訊服務Spring Boot阿里
- SpringMVC中文亂碼問題SpringMVC
- Python中文亂碼問題Python
- Cookie值中文亂碼問題Cookie
- 解決中文亂碼問題
- 【SSM】WEB專案中的中文亂碼問題SSMWeb
- python 讀取文字檔案Python
- 【Java】讀寫文字檔案Java
- Java 專案讀取 resource 資原始檔路徑問題Java
- MySQL直接匯出CSV檔案,並解決中文亂碼的問題MySql
- VB讀取文字檔案的例子:逐行讀取
- Java 讀取檔案Java
- 向表中插入中文字元,查詢時亂碼問題字元
- Python BeautifulSoup中文亂碼問題Python
- MySql中文亂碼問題解決MySql
- Jmeter 解決中文亂碼問題JMeter
- RDSSQLSERVER解決中文亂碼問題SQLServer
- 解決MySQL中文亂碼問題MySql