eclipse 部署與手動部署項目,出現亂碼

問題描述:    
  用maven建立好一個web項目,並用eclipse中的Servers部署項目時,項目正常。但當我將該項目導成war包,再進行部署時,卻出現了亂碼。
 java

處理: linux

在catalina.bat 文件開始的部分 添加 
set JAVA_OPTS= %JAVA_OPTS% -Dfile.encoding=utf-8web

但tomcat doc控制檯的輸出卻出現了亂碼windows

緣由:tomcat

-Dfile.encoding=utf-8 會致使cmd模式亂碼,因此windows下不要用-Dfile.encoding=utf-8。
~若是你用這個參數解決了你的程序問題,說明你程序裏面解析時沒有設置編碼,好比new String,getBytes等,設置下就OK了。
-Dfile.encoding=utf-8是解決java默認編碼問題,在windows下是gbk,但在linux下是utf-8是會正常的eclipse

-----------------maven

-Dfile.encoding解釋:
在命令行中輸入java,在給出的提示中會出現-D的說明:
-D=
               set a system property
-D後面須要跟一個鍵值對,做用是設置一項系統屬性
對-Dfile.encoding=UTF-8來講就是設置系統屬性file.encoding爲UTF-8
那麼file.encoding什麼意思?字面意思爲文件編碼。
搜索java源碼,只能找到4個文件中包含file.encoding的文件,也就是說只有四個文件調用了file.encoding這個屬性。
在java.nio.charset包中的Charset.java中。這段話的意思說的很明確了,簡單說就是默認字符集是在java虛擬機啓動時決定的,依賴於java虛擬機所在的操做系統的區域以及字符集。
代碼中能夠看到,默認字符集就是從file.encoding這個屬性中獲取的。編碼

相關文章
相關標籤/搜索