当前位置: 代码迷 >> Java Web开发 >> 速救啊!jsp,ajax请求struts1 action乱码啊!
  详细解决方案

速救啊!jsp,ajax请求struts1 action乱码啊!

热度:134   发布时间:2016-04-17 01:05:17.0
速救啊!!jsp,ajax请求struts1 action乱码啊!!!!
jsp页面
<%@ page contentType="text/html; charset=GBK" %>

JavaScript
xmlHttpRequest.send("province="+sheng);


到action里接收到参数

System.out.println(province);
newProvince = new String(province.getBytes("iso-8859-1"),
"GBK");

都乱码啊,怎么办啊???非常着急啊

------解决方案--------------------
你的sheng是不是代表一个含有中文的字符串?
如果是那就要先把sheng在页面用js的encodeURIComponent编码一下,
我好像以前也遇到过,祝你成功!
------解决方案--------------------
Java code
request.setCharaterEncoding("GBK");//方法记没记错,忘了
------解决方案--------------------
我一般的做法。
把ajax封装一下,在header加上一个标记,如IS_AJAX "TRUE"

然后在服务器端加一个filter,或叫CodeFilter.
characterEncoding=request.getCharacterEncoding();
if(characterEncoding==null){
if(request.header['IS_AJAX']!=null){
request.setCharacterEncoding("utf-8");
}else{
request.setCharacterEncoding("gbk");
}
}

在项目我一般这样用。用jquery的ajax,不过我看了下源码,在发送之前都会用encodeURIComponent包装一下的。如果你不是用jquery,可能需要包装一下。
------解决方案--------------------
改成UTF-8
  相关解决方案