在学习 JSP 的过程中,和大多数人一样,遇到一些中文乱码问题,这里记录了一些解决办法。
JSP 页面中的中文乱码
解决办法很简单,只需要修改<%@page/>
标签,修改为
JSP 中传递 URL 参数时中文乱码
这个问题需要修改 tomcat 的配置文件 $TOMCAT_HOME/conf/server.xml
,
在这个文件中找到如下行:
为 Connector 添加一个属性 URLEncoding=”gb2312” 就可以了,因为默认 URL 的编码方式是 ISO-8859-1
,
而这个编码方式不支持中文。
表单中的中文不能正常显示
这种情况是虽然你的几个页面都是 gb2312
或者 utf-8
但是当使用
request.getParameter(String name)
方法获得表单数据时一样不能正常显示中文。
这时可以使用 String 的一个构造方法 new String(request.getParameter(String name).getBytes(“ISO-8859-1”), “gb2312”)
来转换编码,这里的 ISO-8859-1
参数为提交表单的编码方式。
这种方法的弊端在于:如果表单很大时,就显得有点笨重,可以使用过滤器来实现对 Request 的统一编码,方法如下:
编写一个过滤器类
下面是一个简单的转换类
修改 web.xml 文件,添加过滤器
下面是 web.xml
中配置的 filter
, 它和 <servlet>
在一个层次。
需要注意的是:两个 <filter-name>
的值必须一样,<filter-class>
是你的过滤类的完全类名。
<init-param>
标签定义初始参数;<filter-mapping>
中的 <url-pattern>
设置对于哪些 request
进行过滤。