关于ajax传参数中文乱码问题

6 篇文章 0 订阅
3 篇文章 0 订阅

大家好,今天在写留言板的功能时,需要用到ajax,也需要传递参数,但是传递中文时总是报错。现在跟大家分享下。

var user = document.getElementById('span_id').innerText;
		 	
		 	var mess = $('input.textbox').val(); 
		 	
		  var xmlhttp;
		  if (window.XMLHttpRequest)
		  {
		     // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码
		     xmlhttp=new XMLHttpRequest();
		  }
		  else
		  {
		     // IE6, IE5 浏览器执行代码
		     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
		  }
		  xmlhttp.onreadystatechange=function()
		  {
		     if (xmlhttp.readyState==4 && xmlhttp.status==200)
		     {
		       document.getElementById("text").innerHTML=xmlhttp.responseText;
		     }
		  }
		  xmlhttp.open("POST","MessageAction.jsp?user="+encodeURI(encodeURI(user))+"&mess="+encodeURI(encodeURI(mess)),true);
		  xmlhttp.send();
		}

在倒数第二行。我用open传递参数,此时user是中文,我需要进行编码。也就是

encodeURI(encodeURI(user))

在后台接收的时候

request.setCharacterEncoding("utf-8");
response.setContentType("text/xml;charset=utf-8");  
String username = request.getParameter("user");
String message = request.getParameter("mess");

try {
  username = URLDecoder.decode(username,"utf-8");
  message = URLDecoder.decode(message,"utf-8");
 } catch (Exception e) {
 e.printStackTrace();
}

核心代码块就是倒数的第三和第四行:解码。

这样就能完美解决中文乱码问题啦。有问题可以留言哦

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

搬砖的阿陆

你的鼓励就是我前进的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值