google-code-prettify

2015年1月9日 星期五

Java在cmd環境下執行的編碼問題

編寫了call Web-service的client程式,
將資料組成JSON的格式送至Server,
在Eclipse下執行一切相安無事,
但是在cmd的環境執行時,
卻有些資料會收到Server回傳400錯誤。

將有問題的JSON資料在cmd畫面中印出來放到jsonlint驗證, 卻是一切正確。 
仔細看了發生錯誤的幾筆資料,
發現資料內容都有含一些特殊符號(例如:數學符號),
所以應該就是編碼的問題。
因為在Eclipse中編寫java時,
整個環境都是設定為UTF-8編碼,
而cmd的環境卻是Big5編碼。 

解決的方式:
1. 在執行java時,給予「-Dfile.encoding=UTF-8」參數。這樣可以解決資料處理時的編碼問題。
2. 在cmd下執行「chcp 65001」指令,65001是表示設定為UTF-8(Big5為950),並到以下的畫面設定字型。這樣可以解決cmd印出中文出現亂碼的問題。


以上的作法可以編寫成以下這樣一個.bat檔,
這樣執行程式時,就方便很多了。
chcp 65001
java -Dfile.encoding=UTF-8 你的java程式 

沒有留言:

張貼留言