IDEA——IDEA使用Tomcat服務器出現亂碼問題


最近剛使用IDEA,在開發一個功能的時候,開始使用Jetty作為容器進行web項目開發,測試通過。然后想了一下線上服務器使用的容器是Tomcat,還是用Tomcat跑一下項目在測試一下,本地和服務器使用相同的容器,這個可以避免因為容器不同而導致本地測試通過,而上線又出現莫名的錯誤~!
就在我從Jetty切換到Tomcat,就發生了問題,訪問JSP頁面使用response輸出,出現了亂碼!!!

就是下面這些東東:(這是什么啊!萌幣中。。。。。)

 ����⣺ ����⣺ ����⣺ ����⣺ ����⣺ ����⣺ ����⣺

這里寫圖片描述
這很是郁悶,本想着一次性測試通過,沒想到這里又讓我停留!
看到亂碼,心里不要害怕,不要緊張!冷靜下來進行分析,看哪里出現問題!

我開始思考:

first :數據庫(mysql)---utf-8

show variables like 'character%'

character_set_client	utf8
character_set_connection	utf8
character_set_database	utf8
character_set_filesystem	binary
character_set_results	utf8
character_set_server	utf8
character_set_system	utf8
character_sets_dir	/aebiz/soft/mysql/share/charsets/

second:Tomcat---utf-8

  <Connector URIEncoding="utf-8" connectionTimeout="20000" port="8888" protocol="HTTP/1.1" redirectPort="8443"/>

Third:jsp --- utf-8

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>

fourth:web.xml---utf-8

<filter>
		<filter-name>CharacterEncodingFilter</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>utf-8</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>CharacterEncodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

Fifth:request和response

		request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");

Sixth:java代碼字符串編碼

 str = tmpWriter.getByteArrayOutputStream().toString("utf-8");

全部都檢查過之后,發現全部是utf-8。大寫的一個懵字,全部是utf-8怎么還是會有亂碼出現呢?

好憂傷,難道是還有什么地方沒有設置嗎,我一想,是不是IDEA結合Tomcat編碼設置有問題導致的呢?按照這個思路發現奇跡就在前面!

在配置Tomcat的時候添加一些參數。如下(開始是沒有設置-Dfile.encoding=UTF-8)

-server
-Xms1024m
-Xmx2048m
-XX:PermSize=512m
-XX:MaxPermSize=512m
-XX:+CMSClassUnloadingEnabled
-XX:+PrintGCDetails
-Xloggc:%M2_HOME%/gc.log
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=%M2_HOME%/java_pid.hproyuan

用搜索引擎發現下面博文:
http://blog.csdn.net/u014424628/article/details/49429393
於是添加VM參數添加

-Dfile.encoding=UTF-8

配置參數就是

-server
-Xms1024m
-Xmx2048m
-XX:PermSize=512m
-XX:MaxPermSize=512m
-XX:+CMSClassUnloadingEnabled
-XX:+PrintGCDetails
-Xloggc:%M2_HOME%/gc.log
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=%M2_HOME%/java_pid.hproyuan
-Dfile.encoding=UTF-8

啟動發現頁面亂碼不見了,可是控制台有出現了亂碼,亂碼真是 生生不息 啊!

這里寫圖片描述

於是配置

idea安裝目錄下的bin文件夾,idea.exe.vmoptions文件中
添加一條配置信息:-Dfile.encoding=UTF-8

這里寫圖片描述

so,一切都解決了!完美!

推薦文章:

http://mp.weixin.qq.com/s/QE5-Mw1kVzvzb_SiI1ZIFQ


歡迎訪問我的csdn博客,我們一同成長!

"不管做什么,只要堅持下去就會看到不一樣!在路上,不卑不亢!"

博客首頁http://blog.csdn.net/u010648555


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM