java亂碼解決方案

前提是在開發項目時,將開發工具的環境設置爲"UTF-8"
一、和數據庫無關
1、在request獲取數據時設置爲request.setAttribute("UTF-8");

2、在web.xml配置文件中加入以下代碼:

 <filter>
	    <filter-name>CharsetFilter</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>CharsetFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">	</span><span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">這是過濾器,但必須放在struts2攔截器上面,因爲struts攔截器裏面的字符處理會有問題</span>

3、修改tomcat的配置文件   

 <Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" URIEncoding="UTF-8" />  添加最後一句話URIEncoding="UTF-8"<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">   </span>


二、如果獲取的數據是正確的,但是數據庫中插入進去的數據是亂碼

    1、建議在安裝數據庫時選中UTF-8編碼
    2、在連接數據庫時,配置文件編寫:url=jdbc\:mysql\://localhost\:3306/mobile_scm?useUnicode\=true&characterEncoding\=utf-8
    3.hibernate配置文件處理連接數據庫亂碼問題
<![CDATA[
jdbc:mysql://localhost:3306/lessonsmanager?useUnicode\=true&characterEncoding\=utf-8
]]>   
  
發佈了40 篇原創文章 · 獲贊 2 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章