手记

JSP中文乱码问题全解决方案

在Java开发中,中文乱码是一个让人头疼的问题,针对不同情况下乱码的处理方法又各不相同,这导致许多初学者对乱码问题束手无策。其实造成这种问题的根本原因是Java默认使用的编码方式是Unicode,对中文的编码方式一般情况是GB2312,因为编码格式的不同,导致中文不能正常显示。

1. JSP页面中文乱码

在JSP页面中,中文显示乱码有两种情况:一种是HTML中的中文乱码,另一种是在JSP中动态输出的中文乱码。

<@ page language="java" import="java.util.*" contentType="text/html; charste=UTF-8">

在上面这行代码中,向page指令中添加了页面内容和显示方式的设置,其中采用UTF-8的编码方式来显示HTML页面的内容,所以中文可以正常显示。

2. URL传递参数中文乱码

当使用get方法传递参数时出现中文乱码,需要对Tomcat服务器的配置文件进行修改,在这里需要修改Tomcat的conf目录下的server.xml文件,找到如下区块:

<Connector port="8080" portocal="HTTP/1.1"
             connectionTimeout="20000"
             redirectPort="8443" />     

在上面的这段代码中添加URI编码设置即可,即:

<Connector port="8080" portocal="HTTP/1.1"
             connectionTimeout="20000"
             redirectPort="8443" URIEncodeing="UTF-8" />   
3. 表单提交中文乱码

对于表单中提交的数据,可以使用request.getParameter(“”)方法来获取,但当表单中出现中文数据的时候就会出现中文乱码,此时需设置renquest对象的请求编码格式来解决:request.setCharacterEncoding("UTF-8");

4. 使用请求编码格式过滤器Filter

如果有一个很大的表单,表单的输入项有几十个之多,这个时候对每个输入项都进行转码就很麻烦了,这时候一个比较简便的方法就是使用Servlet过滤器Filter。对于过滤器的相关知识有兴趣的可以查阅相关资料,在此就不赘述了。

8人推荐
随时随地看视频
慕课网APP