网络编程 
首页 > 网络编程 > 浏览文章

Ajax传递特殊字符的数据如何解决

(编辑:jimmy 日期: 2024/11/17 浏览:3 次 )

问题描述

如下,对含有特殊字符的text进行JSON封装,通过Ajax传递,

var data = {"Id": id, "text": text};

在后台无法进行数据接收。

解决方案

req.setRequestHeader("Content-Type",
        "application/x-www-form-urlencoded");

换为:

req.setRequestHeader("Content-type",
        "application/json; charset=utf-8");

后台接受数据:

 //进行json数据的接收
    StringBuilder sb = new StringBuilder();
    BufferedReader br = request.getReader();
    char[] buff = new char[10000];
    int len;
    while((len = br.read(buff)) != -1){
      sb.append(buff, 0, len);
    }
    String mess = sb.toString();
    //将字符串转换为JSON对象
    JSONObject jsonObject=new JSONObject(mess);
    //获取其中的值
    jsonObject.getInt("Id");
    //含有特殊字符的文本需要先进行转码
    URLDecoder.decode(jsonObject.getString("text"), "UTF-8"));

这样就可以正确的进行文本的接收啦~

上一篇:Ajax的用法总结
下一篇:利用ajax传递数组及后台接收的方法详解
一句话新闻
Windows上运行安卓你用过了吗
在去年的5月23日,借助Intel Bridge Technology以及Intel Celadon两项技术的驱动,Intel为PC用户带来了Android On Windows(AOW)平台,并携手国内软件公司腾讯共同推出了腾讯应用宝电脑版,将Windows与安卓两大生态进行了融合,PC的使用体验随即被带入到了一个全新的阶段。