您的位置:首页 > Web前端 > JavaScript

jsp页面间传值乱码解决

2013-06-10 00:12 204 查看

产生乱码的原因:java在网络上进行传输的时候,用的是iso-8859-1的编码形式进行传输。所以,在编码和解码(得到传递值)的时候,要对应起来。。

解决方法如下:

方法一:重新转码new String(u.getBytes("iso-8859-1"),"gb2312");

例 :

String userName = requset.getParameter("userName");

userName = new String(userName.getBytes("iso-8859-1"),"gb2312");

但每次都这样转,还是太麻烦了,因此可以写一个工具类,提供这个将乱码转成gb2312.

public class Tools{

//提供一个方法,将乱码转化成gb2312

public static String getNewString(String input){

String result = "";

try{

result = new String(input.getBytes("iso-8859-1"),"gb2312");

}catch(Exception e){

e.printStackTrace();

}

return result;

}

在用的时候,

String userName = request.getParameter("userName");

userName = Tools.getNewString(u);

注:在用这种方法时,后面的不一定就是gb2312,可以是gbk,utf-8.具体是哪一种,要取决于向该控制器传值的页面是哪个编码。

方法二:.通过配置server.xml文件[不太稳定]

1. 有人说配置tomcat的配置文件server.xml里这句:

<Connector URIEncoding="GB2312"

port="8080" maxHttpHeaderSize="8192"

maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

enableLookups="false" redirectPort="8443" acceptCount="100"

connectionTimeout="20000" disableUploadTimeout="true" />

加上这句:URIEncoding="GB2312"

2. 虽然可以但是有前提的,若果你过滤器没有配置,

则只是配置了server.xml文件,这样只有在表单是get传值时候才可以!

当是post方式时,照样是乱码!

*这时我们就可以看出在tomcat5中的post与get传值方式是不一样的*

*有人要问有没有一种方法让传值使用get方式或post方式都好用呢,

就用下面的方法三*

方法三:

1. 就是先配置过滤器,又配置server.xml文件,都设置成GB2312的编码

2. 这样无论是post还是get方式的表单传值,中文都不会是乱码!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: