产生乱码的原因:java在网络上进行传输的时候,用的是iso-8859-1的编码形式进行传输。所以,在编码和解码(得到传递值)的时候,要对应起来。。
String userName = requset.getParameter("userName");
userName = new String(userName.getBytes("iso-8859-1"),"gb2312");
注:在用这种方法时,后面的不一定就是gb2312,可以是gbk,utf-8.具体是哪一种,要取决于向该控制器传值的页面是哪个编码。
比如我的login.jsp中,是<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>,因此,我就得用
id = new String(id.getBytes("iso-8859-1"),"utf-8");了。。。不能犯照抄的错误呀。
解决方法有很多,我这里只记录对我这次解决问题有帮助的:
重新转码 new String(u.getBytes("iso-8859-1"),"gb2312");//这里要转成你自己的jsp上面约定的编码格式
例 :String userName = requset.getParameter("userName");
userName = new String(userName.getBytes("iso-8859-1"),"gb2312");
注:在用这种方法时,后面的不一定就是gb2312,可以是gbk,utf-8.具体是哪一种,要取决于向该控制器传值的页面是哪个编码。
比如我的login.jsp中,是<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>,因此,我就得用
id = new String(id.getBytes("iso-8859-1"),"utf-8");了。。。不能犯照抄的错误呀。