解決eclipse中tomcat亂碼問題
轉自:http://blog.csdn.net/colin91/article/details/19976967
問題背景:
在MyEclipse中開發tomcat版web程式,程式中通過網路請求,從遠端伺服器獲取了一段字串,顯示為亂碼(含中文)。初步分析是因為遠端伺服器傳送過來的字元流是傳輸內容的UTF-8編碼,而客戶端獲得字元流後,以JVM預設的編碼重新解析為字串,因伺服器-客戶機編碼不一致,而導致了亂碼問題。
根據經驗,我們知道:
Java虛擬機器中字串編碼預設跟隨作業系統,中文版的Windows系統編碼為GBK,Linux系統為UTF8,如果需要手動設定編碼,可以在JVM啟動時新增以下引數:
-Dfile.encoding=UTF-8
新問題:新增以上引數後,java程式輸出到標準輸出(也就是常見的控制檯)時,日誌編碼也會是utf8,但MyEclipse的Console、Windows的cmd視窗,並不知道應該以UTF8編碼來解析jvm輸出的字元,所以會出來亂碼問題。
最終解決方案:
為了讓JVM輸出編碼與控制檯接收端保持一致,需要手動設定控制檯接收編碼,MyEclipse中操作如下:
1). 依次點選 Window - Preferences - MyEclipse - Servers - Tomcat - Tomcat 7.x - Launch, 點選‘Create Launch Configuration’按鈕,新建一個Debug Configuration
2). 在Common選項卡中設定Encoding為utf-8 ,
Arguments選項卡中,新增-Dfile.encoding=UTF-8 引數到VM啟動引數中。如下兩圖:
3). 經過以上步驟,MyEclipse中多出一個Tomcat 7.x [custom]來,以後除錯/部署專案就使用這個Tomcat。
這樣,MyEclipse中,Tomcat控制檯亂碼就解決了。