Re: [問題] 讀檔,簡體字變亂碼

看板java作者 (-858993460)時間13年前 (2011/05/14 06:42), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《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
文章代碼(AID): #1DpRFZ1B (java)
文章代碼(AID): #1DpRFZ1B (java)