转载:https://blog.csdn.net/qq_37230121/article/details/83269157
前提:在我们使用SSM框架搭建项目中,经常会出现前端界面往数据库插入中文显示???等乱码问题,解决思路如下
前端jsp界面保证字符编码为utf-8:
<%@ page language="java" contentType="text/html; charset=UTF-8"
采用断点调试,观察在SpringMVC中是否能正常接收并显示中文参数,如果显示乱码,说明SpringMVC对接收的参数采取了自己默认的编码方式:ISO-8859-1
然后我们需要在web.xml配置文件中配置一个过滤器,将请求参数在SpirngMVC中的编码方式指定为utf-8:
<filter>
<filter-name>encodingFilter</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>forceRequestEncoding</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>forceResponseEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
但是上述过滤器仅解决了post请求的乱码问题,为了解决get请求的乱码问题,我们需要在tomcat的配置文件server.xml中找到对应端口的定义处添加编码格式utf-8:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8"/>
最关键的点在这里:如果你是更改的tomcat安装目录的server.xml配置文件,那么在用eclipse运行项目时会发现配置没起作用,其实是因为eclipse在运行项目时是用的eclipse中配置的tomcat,那么问题就好解决了,打开eclipse中的tomcat配置文件,改为上述配置即可。