MyEclipse中Tomcat控制檯打印亂碼解決方案


問題背景: 

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



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章