[java]解決NetBeans編譯環境下Scanner或BufferedReader讀中文變亂碼的問題

[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內編譯執行):

截圖092

 

測試結果(在Dos視窗內編譯執行):

截圖093

 

在Dos視窗編譯的時候,他讀取中文都是正常的

但是在NetBeans無法正常讀取的原因

跟他們的預設的編碼方式有關

可以參考另一篇[java]關於編碼big5及Unicode utf-8


紫菜,肖想用貧弱的程式能力成為厲害的工程師

逢甲大學資工系  , 不知道能不能畢業 

信箱:budspudding@gmail.com