日期:2014-05-20  浏览次数:20745 次

servlet 关于得到的request信息是乱码
我用  String truename=request.getParameter("truename");得到的是乱码,这是为什么啊

------解决方案--------------------
这原因可多了!
GET还是POST方式提交?
客户端用什么编码提交?服务器端设置什么编码解析?(通常是客户端当前页面的编码和服务器端的URIEncoding,特指POST方式)
至于GET方式通过问号后面跟着queryString提交的参数,通常需要客户端提交之前encodeURI!基本上URL上带着中文是非常坑爹的,现在的浏览器都不厚道,提交请求的时候都不带指明编码的!
------解决方案--------------------
引用:
这原因可多了!
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编码,"?"经常出现在客户的姓名中,还有其他的很多冷僻字也经常出现在姓名中!