ajax乱码处理方式

乱码问题,网上找了找,各种版本,现在发现,各种的经验遍地开。。。


不多说,成功的方式如下:

1.设置好各处的页面编码,我一直都设置成了utf-8,没见什么异常;

2.ajax 处理方式,见源码

$.ajax({
		type : "POST",
		contentType : "application/json",
		url : "ToHistoryServlet?handleFlag=add&sendPerson=" + sendPerson
				+ "&currentTime=" + currentTime() + "&message="
				+ encodeURIComponent(message) + "&recvPerson=" + recvPerson,
		dataType : 'json',
		success : function(result) {
			alert(result.d);
		}
	});

注意事项:a.使用POST方式;

b.中文前加encodeURIComponent(把字符串编码为URI组件);

c.本例应用了jQuery。


3.servlet接收时处理方式,见源码

public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("UTF-8");
		String handleFlag = request.getParameter("handleFlag");
		Message msg = new Message();
		// handle chinese code dml@2012.8.29

		if (request.getParameter("message") != null) {
			msg.setMessage(new String(request.getParameter("message").getBytes(
					"iso8859-1"), "UTF-8"));
		}
		msg.setRecvPerson(request.getParameter("recvPerson"));
		msg.setSendPerson(request.getParameter("sendPerson"));
		msg.setSendTime(request.getParameter("currentTime"));
		if (handleFlag.equals("add")) {
			HistoryHandle.addMessage(msg);
		} else if (handleFlag.equals("delete")) {
			HistoryHandle.deleteMessage(msg);
		}

	}

注意事项:a.设置编码方式 request.setCharacterEncoding为utf-8;

b.js默认的编码是iso8859-1,所以需要转换一下

String xxxxx=new String(request.getParameter("message").getBytes(
					"iso8859-1"), "UTF-8")
如上操作即可解决ajax乱码问题。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值