Re: [問題] 關於java抓中文變亂碼
※ 引述《WSzc (WSzc)》之銘言:
: 不好意思請問一下
: 就是我現在有一個中文檔案 想寫個程式抓裡頭的東西
: 可是我怎麼抓 印出來中文就會變成亂碼 英文正常
: 同樣的檔案我用C/C++印也是正常的
: 我是這樣寫
: FileReader f = new FileReader(myFile);
: BufferReader b = new BufferedReader(f);
: while( (data = b.readLine())!=null )
: {
: System.out.println(data);
: }
: 如果有一行是 我abc
: 就會印成類似 *)abc 的東西
: 是不是可能是平台問題呢?
: 因為我在之前的工作站是可以正常印中文的
: 可是現在這個工作站連 System.out.println("中文"); 也都是印出亂碼
: 翻了前面文章還有網路 找不太到解決方法
: 有人可以幫忙嗎 謝謝
先確定你要讀取的檔案是使用哪一種編碼,然後:
1. 修改程式使用正確(對應)的編碼
BufferedReader b = new BufferedReader(new InputStreamReader(
theFile, "theEncoding"));
為了避免輸出到 console 時被轉碼過(如果 console 使用的編碼無法處理程式輸出
的字串會發生失真的現象),最好是透過 GUI 元件來呈現讀取到的字串,或是以
UTF-8 編碼輸出到另一檔案裡,然後由 browser 來瀏覽檔案內容(browser 必須選擇
以 UTF-8 編碼解讀檔案內容)。
2. 變更 JRE 預設的編碼。
在啟動你的 Java application 時指定 "file.encoding" property value
java -Dfile.encoding="theEncoding" MyProgram
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.136.1
推
09/14 13:38, , 1F
09/14 13:38, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):