iT邦幫忙

0

java亂碼問題

  • 分享至 

  • xImage

各位好,我有一個java程式會抓一個TXT檔裡面的文字去作其他動作,但是抓到中文就會變成亂碼,請問我應該怎麼處理?

謝謝

java版本:1.8.0_333

    String str;
    FileReader fr=new FileReader("C:\\TEST\\MYTEXT.TXT");
    BufferedReader bfr=new BufferedReader(fr);
    while((str=bfr.readLine())!=null)
    {
    byte[] byteGBK = null;
    System.out.println(" 搜尋字串為" + str);
    }
    
    fr.close(); 

更 自己找到了 .. 改這樣就可以了

    String str;
    InputStreamReader read = new InputStreamReader(new FileInputStream(new File(MYTEXT21)));
    BufferedReader bfr=new BufferedReader(read);
    while((str=bfr.readLine())!=null)
    {
    byte[] byteGBK = null;
    System.out.println(" 搜尋字串為" + str);
    }
    
    fr.close(); 
dophintil iT邦新手 4 級 ‧ 2022-05-11 13:31:03 檢舉
供參考
FileReader只能按系統預設的字符集來解碼,過程中編碼出現損失,造成結果不能還原最初的字元
https://www.796t.com/p/1313529.html
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

3
㊣浩瀚星空㊣
iT邦大神 1 級 ‧ 2022-05-10 11:05:09
最佳解答

正常來說,一般WINDOWS的TXT文件。如果是用記事本之類的建立。
其預設會是 BIG5 碼。

而現今大多數的網頁或是程式,都運行在UTF8碼。
所以你需要做編碼處理。

但現在其實還有個頭痛的問題。就是並非只要是TXT就一定是BIG5碼。
所以正常來說,你最好先做文件編碼的判斷。再決定需不需要轉碼文字處理

我要發表回答

立即登入回答