2013年10月9日 星期三

解決在 eclipse 輸入中文會變亂碼

在 Windows 7(或 Windows XP)底下,直接從 eclipse 執行內含使用 Scanner 的程式
要接受使用者輸入時,會發現輸入的字串直接輸出都會是亂碼~
其實問題本身是系統編碼跟環境編碼不一致的問題。
因為 Windows 7(或 Windows XP)在繁體中文的環境中預設使用的編碼是 Big5
但是 eclipse 預設的編碼是 UTF-8,因此會發生 eclipse 使用 UTF-8 去編碼實際上是 Big5 的字元,就會變成亂碼了。

解決方法就是讓 eclipse 認識到應該要用 Big5 去接受使用者輸入的字元。
可以參考 [1] 的說明,去改 Debug Configuration 的設定,把 Common 頁籤中的 Encoding 欄位改成系統預設的編碼即可!

像是我正在測試 MIME 編碼,還沒改 eclipse 的編碼之前的 MIME 編碼結果:
Please input the string for MIME encoding: 輸入繁體中文
Encode 頛詨蝜�銝剜� to =?UTF-8?B?6aCb6Kmo74Wv6J2c7ry/77+96Yqd5Ymc77+9?=
Decode 頛詨蝜�銝剜� to 頛詨蝜�銝剜�

改完設定後的 MIME 編碼結果如下:
Please input the string for MIME encoding: 輸入繁體中文
Encode 輸入繁體中文 to =?Big5?B?v+mkSsFjxemkpKTl?=
Decode 輸入繁體中文 to 輸入繁體中文

可以明顯看出,在尚未改編碼前,MIME 輸出的結果是 =?UTF-8?....,顯示 JVM 認為輸入的字串是 UTF-8 編碼
改編碼後,MIME 的輸出結果就變成 =?Big5?... 了。

參考資料:
1、eclipse控制台中输入中文输出乱码的解决办法

沒有留言: