码迷,mamicode.com
首页 > 编程语言 > 详细

java编码解码乱码问题

时间:2015-10-27 19:21:36      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:

服务器设值(中文)到界面使用了两次编码:

1 String pageJson=URLEncoder.encode(URLEncoder.encode(str,"GBK"), "GBK");
2 request.setAttribute("pageJson",pageJson);

然后在界面又接收到的值传到后台,用的是地址栏直接url:

window.location.href="...test.do?method=test&pageJson=${pageJson}";

在后台直接解码:

String pageJson=URLDecoder.decode(request.getParameter("pageJson"),"GBK");

此时解码出来的值是乱码的,页面设置的编码格式也是GBK,并且没解码之前直接获取参数的值也是乱码的(其实无需解码了)。

应该是传到服务器的时候浏览器自动解码了。

故加上:

String pageJson=new String(pageJson.getBytes("ISO-8859-1"), "GBK");

就解决了。其实就是页面上虽然是编码后的格式,但是是通过 window.location.href 这样的方式请求到后台的,所以浏览器自动解码,跟平常一般url参数提交到后台是一样的,一般请求默认的编码格式是ISO-8859-1,和页面设置的格式无关,正常格式转换即可。

java编码解码乱码问题

标签:

原文地址:http://www.cnblogs.com/suiyueqiannian/p/4915067.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!