controller接收前台数据—中文乱码问题
项目用的开发环境为tomcat+eclipse+SSM
正如题目,controller接收前台数据—中文乱码问题,在页面编码为UTF-8的前提下,解决方案有二:
一)
controller接收数据时,将类型强制转换
- String keyword = new String(request.getParameter("keyword").getBytes("ISO-8859-1"), "utf-8");
二)
查看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" />
小编经验谈:
第一种方法,小编也是使用过的,之前的项目使用的应用服务器为Jboss,是公司统一配置的,所以不存在Jboss配置的问题,使用第一种方法可以解决。
第二种方法,是目前这个项目,应用服务器为tomcat,用的是自己的。遇到问题的时候,首先想到的是第一种方法,确实也是这么解决的。在本地是解决了,但是代码提交之后,在服务器上测试,问题并没有解决,到网上查了一下,才知道是tomcat的问题。
修改tomcat的配置文件时,先是修改的tomcat安装路径下的配置文件,重启项目之后并没有效果,再次查看tomcat的配置文件,修改过的代码又还原回去了。
最后在下图的位置修改的配置文件,启动之后,就可以了。