你的位置:首页 > Java教程

[Java教程]JSP中文乱码解决方案


学习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.

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>该行为:

<Connector port="8080" protocol="HTTP/1.1" URIEncoding="gb2312"
connectionTimeout="20000"
redirectPort="8443" useBodyEncodingForURI="true" />

注意红色加错部分是新增的。改好后,需要重启tomcat生效。

为了防止在Eclipse中启动tomcat,用get方式提交有乱码。需要对Eclipse中配置的tomcat的配置文件做同样的修改。

 

最后,在get或post接收页面写上:

request.setCharacterEncoding("GB18030");

通过上面的步骤可以较好的解决JSP中文乱码问题。