[java]解決Scanner或BufferedReader讀中文變亂碼的問題
相信應該有蠻多人跟我一樣
剛開始用NetBeans會覺得自己的Scanner和BufferedReader壞了
不過在eclipse我就沒遇過這個問題
關於編碼的問題其實我也不是很了解
我參考到的這篇寫得很詳細很厲害可以看看能學到很多東西「非關語言: 亂碼 1/2」
至於下面使用到的big5可以參考「wiki的大五碼」
解決方法:
正確指定 Reader 要使用的 charset
程式碼如下:
第一段的「 br=new BufferedReader(new InputStreamReader(System.in)); 」
是平常我們寫起來的習慣,不過在NetBeans時會有編碼上的問題
由於我個人比較不喜歡去改設定什麼的
所以比較謹慎的把他寫在程式碼裡
就寫成了「 br=new BufferedReader(new InputStreamReader(System.in,"big5")); 」
Scanner也是相同道理
測試結果(在NetBeans內編譯執行):
測試結果(在Dos視窗內編譯執行):
在Dos視窗編譯的時候,他讀取中文都是正常的
但是在NetBeans無法正常讀取的原因
跟他們的預設的編碼方式有關
可以參考另一篇[java]關於編碼big5及Unicode utf-8
紫菜,肖想用貧弱的程式能力成為厲害的工程師
逢甲大學資工系 , 不知道能不能畢業
信箱:budspudding@gmail.com