1. 程式人生 > >解決eclipse中tomcat亂碼問題

解決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控制檯亂碼就解決了。