学习JSP的过程中总会碰到中文乱码问题,有的是post方式提交没问题,用get方式提交有乱码,还有的是部署到tomcat中没问题,在Eclipse中启动tomcat,发现用get方式提交有乱码。产生乱码的根源是tomcat、java所用的编码方式不同。所以要解决中文乱码问题,首先要保证各个页面所用的编码方式一致,不管是html页面还是jsp页面,都指定为同一种编码方式,如GB18030。
(1)html页面
<meta charset="GB18030">
(2)jsp页面
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
可以在Eclipse里设置html页面及jsp页面的编码方式统一为GB18030
接下来,就是指定tomat所用的编码方式了。打开tomcat目录下的conf目录下的server.xml文件,修改
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>该行为:
<Connector port="8080" protocol="HTTP/1.1" URIEncoding="GB18030"
connectionTimeout="20000"
redirectPort="8443" />
注意红色加粗部分是新增的。改好后,需要重启tomcat生效。
为了防止在Eclipse中启动tomcat,用get方式提交有乱码。需要对Eclipse中配置的tomcat的配置文件做同样的修改。
最后,在get或post接收页面写上:
request.setCharacterEncoding("GB18030");
通过上面的步骤可以较好的解决JSP中文乱码问题。