Re: [問題] 讀檔,簡體字變亂碼
※ 引述《ta0306556 (POIL)》之銘言:
: File f=new File("testsent.txt");
: FileInputStream fr = new FileInputStream(f);
: BufferedReader br = new BufferedReader( new InputStreamReader( fr,"UTF-8" ) );
: String post ="";
: while((post = br.readLine())!= null)
: {
: System.out.println(post);
: }
: 在程式中,我已經設定編碼為'utf-8'
: 然後我將文件存成 utf-8 (無BOM)
: 大部分的簡體字都可以正確讀出。
: 但遇到某些特定字元就會出問題。
: 例:"2000年 奥运 在 雪梨 举办"
: 輸出:"2000年 ?? 在 雪梨 ??"
: 從例子中可以很明顯的看出,奧運跟舉辦都變成"?"了。
: 當然還有其他的字也是這樣。
: 請問各位大大,這種問題該怎麼解決呢?
: 我已經查GOOGLE,一整天了。依然不知道怎麼解。所以到此一問。
: 感謝大家。
我會猜這不是讀取的問題 而是 System.out.println 的轉碼問題
因為你印到了 System.out 去 在印出時會做轉碼 (轉成你的 console 用的編碼)
所以轉不過去的就變問號了
你可以試著用 .charAt() 去查詢讀進來的字串裡每個字的字碼
如果沒有出現 ? (0x3F, 63) 或 U+FFFD (0xFFFD, 65533) 應該就是讀取成功了
--
'Oh, Harry, don't you see?' Hermione breathed. 'If she could have done
one thing to make absolutely sure that every single person in this school
will read your interview, it was banning it!'
---'Harry Potter and the order of the phoenix', P513
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.30.135
推
05/14 06:57, , 1F
05/14 06:57, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):