业务场景:调easyui的dialog打开一个弹窗,传参是用json封装的,而且有中文,然后在极速模式是正常的,在ie11测试发现中文出现乱码了

var params = JSON.stringify(writParamList);

top.dialog({

id: 'noticeList',

title:'列表',

width:900,

height:500,

url:'${root}/notice/multiNoticeList.do?params='+params,

onclose:function(){

//location.reload();

}

}).showModal();

后台获取json数据,并转成list,然后在ie模式,获取到的json数据都出现中文乱码,然后导致json不能解析报错了

String params = request.getParameter("params");

logger.info("文书参数转换前:》》"+params);

params=StringEscapeUtils.unescapeJava(params);

logger.info("文书参数转换后:》》"+params);

ObjectMapper mapper = new ObjectMapper();

JavaType javaType = mapper.getTypeFactory().constructParametricType(List.class, ApprWritUnionFormModel.class);

/*List writUnionFormList =

JSON.parseArray(params, FormModel.class);*/

List writUnionFormList=new ArrayList();

try {

writUnionFormList = (List)mapper.readValue(params, javaType);

} catch (JsonParseException e) {

e.printStackTrace();

} catch (JsonMappingException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

针对上面问题,和同事讨论,最开始打算base64加密来传,然后发现base64加密中文出现问题,所以改成URLEncode的方式,前端加密两遍,后台在解密一遍

var params = JSON.stringify(writParamList);

top.dialog({

id: 'noticeList',

title:'列表',

width:900,

height:500,

url:'${root}/notice/multiNoticeList.do?params='+encodeURI(encodeURI(params)),

onclose:function(){

//location.reload();

}

}).showModal();

后台代码修改,解码一遍,然后发现在ie也正常

String params = request.getParameter("params");

logger.info("文书参数转换前:》》"+params);

//params=StringEscapeUtils.unescapeJava(params);

// byte[] buffer=Base64Utils.decodeFromString(params);

// params = new String(buffer);

try {

params=URLDecoder.decode(params,"utf-8");

} catch (UnsupportedEncodingException e1) {

e1.printStackTrace();

}

logger.info("文书参数转换后:》》"+params);

ObjectMapper mapper = new ObjectMapper();

JavaType javaType = mapper.getTypeFactory().constructParametricType(List.class, ApprWritUnionFormModel.class);

/*List writUnionFormList =

JSON.parseArray(params, FormModel.class);*/

List writUnionFormList=new ArrayList();

try {

writUnionFormList = (List)mapper.readValue(params, javaType);

} catch (JsonParseException e) {

e.printStackTrace();

} catch (JsonMappingException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

java json乱码_Java Http请求传json数据乱码问题的解决相关推荐

  1. java url路径中文乱码_Java Url请求方式中文乱码问题解决办法

    jsp中post方式请求一般不会乱码,如果乱码加上这句: 解决办法一 request.setCharacterEncoding("utf-8"); 而get方式请求,若url含非西 ...

  2. java mysql插入数据乱码_java向mysql数据库插入数据显示乱码的问题

    在做一个java web工程时,有时会碰到在向数据库添加数据库时,结果出现乱码"???"的问题.针对该问题的主要解决办法就是: 一.确保是否添加了字符集过滤器: 在java web ...

  3. python request post json_python接口之request测试:以json格式发送post请求,.json方法,查看响应结果的情况...

    json和dict python中的dict类型要转换为json格式的数据需要用到json库: importjson = json.dumps() = json.loads() 需要注意的是pytho ...

  4. ajax请求解析json,如何为Ajax请求解析json响应?

    我是ajax/javascript的新手.我试图解析响应下面Ajax请求:如何为Ajax请求解析json响应? function invokeMediationRestService(rql) { v ...

  5. java zip 压缩乱码_java实现zip压缩中文文件名乱码怎么办?

    java实现zip压缩中文文件名乱码怎么办? java实现zip压缩中文文件名乱码的解决办法: 一.文件压缩的中文乱码问题 1.中文文件名的乱码解决 对于压缩的文件,当文件名称是中文时,若使用JDK ...

  6. java用HttpURLConnection发起HTTPS请求并跳过SSL证书,解决:unable to find valid certification path to requested targ

    java用HttpURLConnection发起HTTPS请求并跳过SSL证书 问题出现:unable to find valid certification path to requested ta ...

  7. split逗号分割中文出现乱码java_Java中URL传中文时乱码的问题解决方案

    前言 Java中URL传中文时乱码的问题相信不少朋友都遇到过,最近就遇到一个问题,就是在Action当中把一条中文信息绑定在URL的后面,ActionForward到别一个页面时,用reqeust.g ...

  8. ajax 传输中文乱码,关于Ajax请求中传输中文乱码问题的解决方案

    今天遇到一个问题,有关ajax 请求中传输中文,遇到乱码的问题. 如下代码: function UpdateFolderInfoByCustId(folderId, folderName, custI ...

  9. java getreader_java后台发起get请求获取响应数据学习记录: 话不多说直接上代码

    : package com.jl.chromeTest; import java.io.BufferedReader; import java.io.InputStreamReader; import ...

最新文章

  1. jquery 插件开发的作用域及基础
  2. 51CTO -- 网络自学的瓶颈期
  3. mysql多实例访问代理_MySql-Proxy之多路结果集归并
  4. jzoj4230-淬炼神体【0/1分数规划】
  5. 关于Arcgis工作空间的记忆点
  6. upnp协议和dlna源码理解与修改
  7. Windows Workflow Foundation之旅(六)——框架组成、工作流创作模式
  8. 数据结构与算法(Python)第四天
  9. linux shell ls -1 列显示文件
  10. 第七章7.8示例学习:统计每个字母出现的次数
  11. 实验吧Web-易-简单的sql注入之3(报错的sql盲注之exp)
  12. SDK接入学习(一):PlayerSetting详解(PC、Mac、Linux)
  13. 计算机提示应用程序无法启动,电脑应用程序无法正常启动提示0x000007b怎么办?...
  14. 人脸识别摄像头开发板和模组选型
  15. 波士顿大学研究生计算机科学专业排名,USnews2012美国大学排名计算机科学专业研究生排名...
  16. 阿里云体验--搭建超级小班课网课系统
  17. java 获取今天或者某一天是星期几/周几以及几号的方法
  18. Apple iPad Pro 与 iPad air有什么不一样
  19. 台湾国立大学(林轩田)《机器学习技法》(第7讲)blending and bagging
  20. macOS Redis 安装

热门文章

  1. 小米这两款手机沦为“难兄难弟”,再降价也清不了库存
  2. 库克看下!华为MatePad 11月25日发布:剑指苹果
  3. 真有钱!科大讯飞年中分红:共派发现金红利2.2亿元
  4. 安卓双屏折叠手机!看了微软时隔四年发布的手机 手里的iPhone差点掉地上
  5. 戴姆勒:停止内燃机研发 马斯克:欢迎进群!
  6. 串口的输出设置【原创】
  7. TextView显示html信息、在文本下面添加下划线、中划线、设置图片
  8. 不可小视的贝叶斯(三)
  9. Android的第一天
  10. 生成内核版本号头文件的方法