SSM框架中的中文亂碼問題
阿新 • • 發佈:2020-06-27
在前面ssm框架搭建好後,出現了各種亂碼,這裡詳細記下筆記
1.設定專案的編碼:(idea)
file->setting-Editor-file Encoding->設定為UTF-8
2.設定web.xml中過濾
<!--解決中文亂碼問題的過濾器--> <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>
3.如果是前端頁面亂碼問題,前端設定頁面亂碼那個檔案頭
4.設定tomcat的編碼
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
5.再有如果是資料庫資料存入出現???
5.1、設定和資料庫連線字串編碼
mysql.url=jdbc:mysql://localhost:3306/ssm?characterEncoding=UTF8
5.2、修改mysql資料庫和表中欄位的格式為utf-8
6.返回給前端的字元是??,亂碼。
兩種解決方案:
6.1、在@RequestMapping中設定@RequestMapping(value="/aaa",method=RequestMethod.GET,produces="text/plain;charset=utf-8")
但如果很多對映都要寫,太麻煩,故如下6.2一次性解決
6.2、在springmvc的配置檔案中加入
<mvc:annotation-driven >
<mvc:message-converters register-defaults="true">
<bean class="org.springframework.http.converter.StringHttpMessageConverter" >
<property name = "supportedMediaTypes">
<list>
<value>application/json;charset=utf-8</value>
<value>text/html;charset=utf-8</value>
<!-- application 可以在任意 form 表單裡面 enctype 屬性預設找到 -->
<value>application/x-www-form-urlencoded</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
但加入上述後,有些人的專案就發現訪問直接報404了
解決:因為我們在spirngmvc沒配置註解掃描。
!--配置springmvc註解掃描--> <context:component-scan base-package="com.yiyezhiqiu.controller"/> <!--配置不處理靜態資源--> <mvc:default-servlet-handler/> <!--配置註解驅動--> <mvc:annotation-driven />