ListerCi 2017-12-14 07:05 采纳率: 60%
浏览 6717
已采纳

Java后台获取前端POST请求中Json数据的乱码问题

前端上传的Json数据如下所示:

 {
    "name":"百度跳线",//产品名字
    "data":[

        {"num": 1, "gongxu": "bq"}//gongxu:工序名称,名字已经统一。num:排名顺序

        {"num": 2, "gongxu": "rs"}

        {"num": 3, "gongxu": "slsjzp"}
        //.......
        //.......
    ]
}

在Java后台的Servlet中通过以下代码获取请求体:

 request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        // 1. 获取请求体中的内容
        BufferedReader br = new BufferedReader(
                new InputStreamReader(request.getInputStream(), "utf-8"));
        StringBuffer sb = new StringBuffer("");
        String temp;
        while ((temp = br.readLine()) != null) {
            sb.append(temp);
        }
        br.close();
        String params = sb.toString();
        System.out.println(params);

最后得出的结果却包含乱码:

 name=%E6%9D%A1%E7%BA%BF&data%5B0%5D%5Bnum%5D=1&data%5B0%5D%5Bgongxu%5D=ym&data%5B1%5D%5Bnum%5D=2&data%5B1%5D%5Bgongxu%5D=yj&data%5B2%5D%5Bnum%5D=3&data%5B2%5D%5Bgongxu%5D=yinddj

这里不仅有乱码,而且data字段也有好几个,请问怎么样才能把前端传的数据原封不动的取出来呢?

  • 写回答

10条回答 默认 最新

  • a185137515 2017-12-14 07:09
    关注

    url 解码,
    结果
    name=条线&data[0][num]=1&data[0][gongxu]=ym&data[1][num]=2&data[1][gongxu]=yj&data[2][num]=3&data[2][gongxu]=yinddj

    http://tool.chinaz.com/tools/urlencode.aspx

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(9条)

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题