servlet 中文乱码

来源:互联网 发布:d3.v3.js库下载 编辑:程序博客网 时间:2024/06/06 14:15

场景是这样的:A端用get方式向B端推送数据,规则是这样的:A端用gbk编码urlEncode中文呢字符,B端的运行环境是utf8,这样在B端获取的中文字符就是乱码了。


原因:


当get提交时,B端设置req.setCharacterEncoding("GBK")是不管用的,这种方式只是用post提交。

当req.getParameter("xxx")时,容器会自动调用UrlDecoder.decode()方法解码,默认的编码是iso-8859-1;所以得到的编码是乱码。



解决的方法:

byte[] names = req.getParameter("name").getBytes("ISO-8859-1");String name = new String(names,"GBK");

这样就能取出正常的中文字符了。


原创粉丝点击