解决Servlet中get或post中文乱码问题

来源:互联网 发布:淘宝订单数据出售 编辑:程序博客网 时间:2024/05/16 03:36
笔者在工作中遇到这个问题,第一次是POST中的中文乱码问题。在JSP页面中提交中文数据时,当时是用FF测试,发现没有问题,数据能提交而且能用Hibernate插入到数据库,之后用IE测试,发现不行,插入失败,换成chrome也不行。最后发现问题的所在,中文打印输出时为乱码。JSP中的编码为<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%>,由于是用POST提交数据,第一反应就是加一行代码: 
Java代码  收藏代码
  1. request.setCharacterEncoding("utf-8");  

问题即解决。 
第二次是用GET提交数据,servlet接收数据,因为在同一个表单中,有文件上传,也有一般的数据,于是用到了ajaxFileUpload上传插件,文件上传用的是POST提交方式,而一般的数据用的是GET提交。同样是在UTF-8的JSP页面中,同样中文出现乱码。但这一次没有上一次幸运了。在网上查了很多资料,但还是没有解决,有的是修改JSP页面编码,修改成GBK或gb2312,有的是修改tomcat的服务器接收数据的编码。但有一点提醒了我,tomcat默认接收数据的编码是ISO-8859-1,于是就想到了将字符串转换编码。 
Java代码  收藏代码
  1. new String(s.getBytes("ISO-8859-1"), "utf-8");  

问题解决。只不过要麻烦点,每个涉及到中文的参数值都要转换编码,不过问题还是解决了。


转自:http://maylian7700-126-com.iteye.com/blog/940846

0 0