get方法,在java中获取乱码的问题

来源:互联网 发布:adobe软件最新版本 编辑:程序博客网 时间:2024/04/27 17:05


比如我们在浏览器中输入*******.html?depotId=A0001&name=你好&title=你好吗&content=真的啊

在java代码中用request.getParameter("name")

结果获取到时乱码 

这是为什么呢

原因如下

浏览器会自动对汉字进行转码

传到服务器实际url为

********.html?depotId=A0001&name=%E4%BD%A0%E5%A5%BD&title=%E4%BD%A0%E5%A5%BD%E5%90%97&content=%E7%9C%9F%E7%9A%84%E5%95%8A

吼吼吼    真不可思议


等价于在java中进行了如下操作

URLEncoder.encode("你好","GBK")  


由于tomcat对url进行解码用的是ISO-8859-1

等价于


URLDecoder.decode=(“%E4%BD%A0%E5%A5%BD","ISO-8859-1");  

所以就产生了乱码

解决方案

url

encodeURI(encodeURI(name ));


java端

URLDecoder.decode( name ,"utf-8");


0 0