工作中某个某个搜索框输入中文参数没有结果,输入数字和时间能返回结果,所以猜测中文乱码了,后边经过控制台打印确实乱码!
按照以下三个解决步骤,解决不了你来找我:
1.设置页面编码:
<%@ page language="java" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8"%>
2.在web.xml中添加全局的字符过滤器
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>com.jorian.web.filter.CharacterEncodingFilter</filter-class>
<async-supported>true</async-supported>
<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>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3.终极解决方式,修改应用容器tomcat的conf下的server.xml文件
比如我使用的8080端口,找到8080端口,加上useBodyEncodingForURI="true",修改后如下
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true"/>
完美解决问题!