servlet 关于得到的request信息是乱码
我用 String truename=request.getParameter("truename");得到的是乱码,这是为什么啊
------解决方案--------------------这原因可多了!
GET还是POST方式提交?
客户端用什么编码提交?服务器端设置什么编码解析?(通常是客户端当前页面的编码和服务器端的URIEncoding,特指POST方式)
至于GET方式通过问号后面跟着queryString提交的参数,通常需要客户端提交之前encodeURI!基本上URL上带着中文是非常坑爹的,现在的浏览器都不厚道,提交请求的时候都不带指明编码的!
------解决方案--------------------
支持你的
------解决方案--------------------上面的都说了,要设置编码方式了
------解决方案--------------------很好的资料啊
------解决方案--------------------如果是post直接 request.setcharsetEncoding() ,参数跟jsp页面的编码指定为一样就行了;如果是get就要手动获取字节然后重新用页面的编码构成字符串
------解决方案--------------------new String(bytes,"uft-8");
------解决方案--------------------字符集的问题啦,这个要集合你电脑开发环境来修正你的字符集的。还有,你是get提交还是post提交的?
------解决方案--------------------这个就是字符集的问题,如果你POST或者GET的编码和后台支持的编码不一样,就会出现这种问题。这是Web开发的常见问题。
如果条件有可能的话,请将所有的编码都设置成utf-8, 这样大家统一了就OK了,否则的话,在接收的地方如果出现了乱码,就要手动转码一下, 比如:
str = new String(str.getBytes("iso-8859-1"), "utf-8");
上面的代码就是把iso-8859-1的编码转换成utf-8
------解决方案--------------------public static String Gbk(String action)
{
try{
byte[] b =action.getBytes("ISO8859_1");
String convert =new String(b,"GB2312");
return convert;
}catch(Exception e){
System.out.println("GBK Exception:"+e );
}
return null;
}
将truename字符串传入,即可转为GB2312编码,这样就可以正常显示中文
------解决方案--------------------http://blog.csdn.net/tianma630/article/details/8458198看看这个 希望对你哟帮助
------解决方案--------------------用GB2312的童鞋注意了,"?"这种冷僻字是显示不了的,如果你用GB2312中转转换过这些字就丢了,虽然最后页面上哪怕再用UTF-8也显示不了了!
只要可以就用GBK编码,"?"经常出现在客户的姓名中,还有其他的很多冷僻字也经常出现在姓名中!