最近在做项目自测的时候发现,每次输入查询条件为中文时,后端Controller层中请求的的VO中都是乱码,第一次遇到没有头绪,于是开始了各种排除法
一、在jsp中,页面的编码很明确:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>二、在Controller层,打印出默认的编码格式,也是UTF-8,打印方式:
System.out.println(request.getCharacterEncoding());三、查看IDE编码方式,毫无疑问都是UTF-8。
这我就奇了怪了,所有编码方式都一致,怎么可能还会有错,思前想后,从页面表单中提交的数据在Java程序里显示乱码,还有一种可能就是Tomcat的编码没有设置,tomcat的默认编码是iso8859-1,而程序的默认编码为UTF-8,这里出现了冲突,所以修改tomcat下的conf/server.xml文件。
找到如下代码:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
这段代码规定了Tomcat监听HTTP请求的端口号等信息。
修改为如下情况
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
就可以啦!
本文介绍了一种常见的中文乱码现象及其解决方案。当在Java Web应用中使用中文查询时,可能会遇到乱码问题,尽管前端和后端都配置了UTF-8编码。文章详细解释了如何通过修改Tomcat服务器配置来解决这一问题。
5292

被折叠的 条评论
为什么被折叠?



