请教JSP页面使用Ajax请求Action接收乱码问题(SSH)

走在四季 2015-06-04 11:29:24
JSP页面:
var url= ctx+'/user/form-design!convertAll.action';
var data='id='+id+'&contentParseNew='+"中国";
$.ajax({
url:url,
data:data,
type:"post",
contentType:'application/x-www-form-urlencoded; charset=utf-8',
success:function(msg){

}
});

Java:
HttpServletRequest request = Struts2Utils.getRequest();
String contentParseNew = request.getParameter("contentParseNew");
String id = request.getParameter("id");
try {
System.out.println(id+"------:"+new String(contentParseNew.getBytes(), "UTF-8"));
System.out.println(id+"======:"+new String(contentParseNew.getBytes("GBK"),"UTF-8"));
System.out.println(id+"******:"+new String(contentParseNew.getBytes("gb2312"),"UTF-8"));
System.out.println(id+"######:"+new String(contentParseNew.getBytes("ISO-8859-1"),"UTF-8"));
System.out.println(id+"%%%%%%:"+new String(contentParseNew.getBytes("UTF-8"),"ISO-8859-1"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}

控制台输出:“中国”
JSP页面换成
var data='id='+id+'&contentParseNew='+encodeURI(encodeURI("中国"));
Java控制台输入“%E4%B8%AD%E5%9B%BD”
JSP页面换成
var data='id='+id+'&contentParseNew='+encodeURIComponent("中国");
Java控制台输入“中国”

请指教,谢谢。最好说的详细一点。
...全文
224 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
走在四季 2015-06-04
  • 打赏
  • 举报
回复
引用 3 楼 lb091188 的回复:
是否用了Struts框架!我记得Struts框架处理ajax请求的时候回传不会经过Struts的乱码处理拦器的应该自己在处理ajax请求的action中设置衣服编码,这样前台就不会出现乱码了!我是初学!如有不对请指正,希望能够帮助你!
亲,先谢谢你,不过我现在不是回传。是页面传后台。加油,好好学习。
  • 打赏
  • 举报
回复
是否用了Struts框架!我记得Struts框架处理ajax请求的时候回传不会经过Struts的乱码处理拦器的应该自己在处理ajax请求的action中设置衣服编码,这样前台就不会出现乱码了!我是初学!如有不对请指正,希望能够帮助你!
走在四季 2015-06-04
  • 打赏
  • 举报
回复
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ include file="/common/taglibs.jsp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
页面都是“UTF-8”
走在四季 2015-06-04
  • 打赏
  • 举报
回复
window.location.href=ctx+"/user/form-design!convertAll.action?id="+id+"&contentParseNew="+"中国"; 这样也是不行。记得以前没这样啊,不知道问题出在那里。求解答,求解脱,
走在四季 2015-06-04
  • 打赏
  • 举报
回复
JSP页面: var data='id='+id+'&contentParseNew='+escape(encodeURIComponent("中国")); 后台 Action:
try {
			contentParseNew =URLDecoder.decode(contentParseNew,"UTF-8");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
还是同事比较厉害。结帖了。

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧