Java Web中乱码问题的总结
2016-04-11 16:57
288 查看
最近一直在迁移实验室的网站,这些网站都是以前师兄编写的,年代有点久远,运行于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
乱码大都是前台传到后台时出现乱码,师兄的程序中也对这个部分做了一些处理:后台取到的值先按照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
相关文章推荐
- Linux下修改MySQL编码的方法
- cmd模式下中文乱码的解决方法(注册表)
- 解决mysql5中文乱码问题的方法
- EBS xml publisher中文乱码问题及解决办法
- ExtJS中文乱码之GBK格式编码解决方案及代码
- 解决MySQL客户端输出窗口显示中文乱码问题的办法
- php url地址栏传中文乱码解决方法集合
- 常见php与mysql中文乱码问题解决办法
- 网站开发防止中文乱码需要了解的codepage的重要性小结
- php中json_encode UTF-8中文乱码的更好解决方法
- js escape,unescape解决中文乱码问题的方法
- js url传值中文乱码之解决之道
- JQuery异步获取返回值中文乱码的解决方法
- JSP中文乱码常见3个例子及其解决方法
- 如何解决JQuery ajaxSubmit提交中文乱码
- jquery向.ashx文件post中文乱码问题的解决方法
- 通过过滤器(Filter)解决JSP的Post和Request中文乱码问题
- opensuse下如何解决jfreechart中文乱码的问题
- DOS命令行窗口mysql中文显示乱码问题解决方法
- utf-8编码引起js输出中文乱码的解决办法