SpringMVC中文亂碼問題

hipilee發表於2018-01-17

       Spring MVC整合的時候如何解決中文亂碼問題。首先中文亂碼問題有四個方面:一 頁面本身的編碼問題;二 客戶端傳到伺服器上的中文資料亂碼;三 伺服器傳回給客戶端的中文資料亂碼;四 資料庫編碼問題。

一 頁面本身編碼問題

https://www.cnblogs.com/DaTouDaddy/p/6519709.html

二 客戶端上傳資料編碼問題

       首先解決客戶端POST請求伺服器資料的問題。在工程的web.xml檔案中新增如下過濾器就可以解決中文亂碼問題。

	<!-- This fiter fix character encoding problems by POST method. -->
	<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>
		<init-param>
			<param-name>forceEncoding</param-name>
			<param-value>true</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>characterEncodingFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

      接下來解決客戶端get請求伺服器資料的問題,在tomcat安裝目錄下server.xml檔案中做如下修改就可以解決中文亂碼問題。

    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
修改為:
    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="utf-8"/>
如果開發環境使用的時候在maven pom檔案裡配置的tomcat外掛,那麼則需要做如下配置。
三 回傳資料編碼問題     
    最後來解決在伺服器返回中文資料亂碼問題。在spring mvc的配置檔案做如下修改:
	<mvc:annotation-driven >  
    	<mvc:message-converters register-defaults="true">  
   			 <!-- 解決@ResponseBody中文亂碼 -->  
  			<bean class="org.springframework.http.converter.StringHttpMessageConverter">  
    			<property name="supportedMediaTypes" value = "text/html;charset=UTF-8" />  
  			</bean>  
 		</mvc:message-converters>  
	</mvc:annotation-driven> 
四 資料庫編碼問題    
    還有一個資料連結是的編碼指定問題
jdbc.url=jdbc:mysql://localhost:3306/student?characterEncoding=UTF-8




相關文章