日期:2014-05-16  浏览次数:20393 次

简简单单----(七)jsp中文乱码六种情况---解决方案


        乱码是让人头疼的一件事情,您是否和我一样也遇到过这样的情况,向数据库中添加一条记录,记录是添加上了,到数据库里一看,数据凌乱了。。。顿时我也凌乱了。。。把html文件改为jsp文件,添加了一下jsp page指令重新打开同时发现所有的中文都七十二变了。。是否。。下面我们就一起看看java web中的中文乱码问题。

 

 

1、JSP页面出现的中英文乱码:

        我们的PageCharset.jsp页面代码如下所示:

<%@ page language="java" import="java.util.*"%>
  
<html>
<head>

<title>中文显示示例</title>
</head>

<body>
	中文显示的示例。
	<%
		out.print("这里是用jsp输出的中文");
	 %>
</body>
</html>


        当我们在保存我们的文件的时候会出现下面的提示:

 


        整因为在我们的MyEclipse中默认的编码为ISO-8859-1,而ISO-8859-1不支持中文的编码,所以jsp页面代码如果出现中文就不能保存了。对于这样的错误,我们只要在页面上加上支持中文的编码格式就可以了,在jsp页面中加上pageEncoding=“gb2132” 支持中页面的编码格式就可以了。这样我们就能正常保存我们的jsp源文件了。

 

 

 

2、URL传递参数中文乱码

 

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
  
<html>
<head>

<title>URL传递参数中英文处理示例</title>
</head>
	<%
		String param = request.getParameter("param");
	 %>
<body>
	<a href="URLCharset.jsp?param='中文'">请单击这个链接</a>
	您提交的这个参数为:<%=param %>
</body>
</html>


 

        启动tomcat运行结果出现url传递的中文乱码:

 

        这里我们需要配置tomcat服务器文件,才能解决这个问题。具体方法是,在tomcat的conf目录下找到server.xml配置文件,找到如下代码

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


        在后面添加上编码方式,URIEncoding="gb2312" 重新启动tomcat问题就解决了。

 

 

 

3、表单提交中问乱码

        对于表单中提交的数据,可以用request.getPraramter("");方法来获取,但是当表单中出现中文数据的时候就会出现乱码。

        我们的提交表单的页面,FormCharset.jsp页面如下:

<%@ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding="GB18030"%>
<!DOCTYPE