首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

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

2011-12-20 
速救啊!!jsp,ajax请求struts1 action乱码啊!!!!jsp页面%@ page contentTypetext/html charsetGBK %

速救啊!!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

热点排行
Bad Request.