Java Web中乱码问题的总结

        最近一直在迁移实验室的网站,这些网站都是以前师兄编写的,年代有点久远,运行于jdk4 + tomcat4,由于一些原因现在必须要迁移到jdk7+tomcat7的环境中,迁移过程中最让我头疼的就是各种花式乱码。

        乱码大都是前台传到后台时出现乱码,师兄的程序中也对这个部分做了一些处理:后台取到的值先按照ISO-8599-1格式转换,然后转为GBK格式(前台传入的格式就是GBK);

 value = new String(value.getBytes("ISO-8559-1"),"GBK");

        然而这个方法在tomcat7中完全没用,后台得到的字符串无论怎么转码都是乱码。

       试遍了网上的方法之后,最终找到了解决乱码的最简单的方法:

      1)建立一个filter,filter中调用request.setCharacterEncoding方法设置编码,这样基本可以解决所有的post方式出现乱码的问题,当然你也可以在request.getParameter()之前手动调用设置编码的方法,只不过这样就太麻烦,而且耦合度太高。

      2)设置tomcat,在server.xml中<connector>中加入URIEncoding="GBK"属性,这样可以解决get传参中出现乱码的问题,不过这样需要修改tomcat的配置文件,加入你的tomcat底下有多个项目这个方法就不太好了。

      3) response.sendRedirect传中文参数的问题,这个问题可以参考下面这篇博客:

     http://blog.chinaunix.net/uid-7431665-id-2627263.html




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值