最近在用Jquery的getJSON方法进行AJAX异步调用的时候,碰到了在中文乱码问题。在我的代码中需要传中文到后台的Webwork Action里面,然后返回值里面也包含中文。请求和相应的参数都是通过JSON传送。
需要说明一点,jQuery的getJSON方法其实是把JSON格式的参数转换成URL上面的参数,然后发起请求。返回的时候才以真正的json格式数据返回。
我的页面和Action的编码都是utf-8。碰到的问题是页面传送到Action的中文能够正常显示,但是Action通过JSON格式返回中文却显示乱码。网上找了很多相关资料,但是都没有解决问题。因为我的Webwork JSONResult Type是自己写的,所以我觉得问题可能处在那里。
最后想到的办法是在Action里面使用java.net.URLEncoder把中文转码一下,变成%EA%BC....这种格式,然后通过JSON传到页面上。
try {
temp.setContent(java.net.URLEncoder.encode("你好啊", "utf-8"));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
然后在页面的getJSON回调函数里面用javascript的decodeURI把之前经过转码的字符串转回到中文。
decodeURI(msgs["content"])
这样就能正常显示中文了。有一点需要注意,就是编码跟解码时候的字符集一定要一样,否则转换会出错。因为GB2312和UTF-8还有其他可以表示中文的字符集在用java.net.URLEncoder转码之后的结果是不一样的。所以编码和解码使用的字符集要对应才行。
分享到:
相关推荐
jQuery-ajax-用户名异步请求,转载请注明出处:https://blog.csdn.net/qq_40374604(如有需要欢迎留言,我一定会尽快解答)
使用jquery异步请求方式发送数据,几种方式
本Demo主要针对jquery的$.getJSON操作,返回json, 针对传参出现的中文乱码, json里出现中文乱码。
jquery异步请求例子jquery异步请求例子
springmvc jquery ajax json 异步传递数据 springmvc异步传递请求 已包含全部源代码实现 把jar包放入 然后新建文件 配置xml !!!!! 全部资源
Jquery跨域Json请求处理
jquery+asp ajax 中文乱码问题解决文档
jQuery json创建投票系统_异步投票代码
jQuery JSONView是一款非常实用的格式化和语法高亮JSON格式数据查看器jQuery插件。通过该插件可以将JSON格式的数据进行格式输出,便于阅读,同时它还支持各种数据类型的语法高亮,以及节点的收缩和展开等。
JQuery+json+ashx异步请求分页
vs2013 利用Ajax+Jquery实现异步进度条效果
jQuery ajax 异步 请求
点添加、删除,新增和删除行,填写后数据后点提交时拼装成json串异步提交,后台解析json串。
自己做了一个jquery ajax异步请求,获得一个list对象的下拉框例子自己做了一个jquery ajax异步请求,获得一个list对象的下拉框例子
讲述了JQuery,JSON,Struts2实现Ajax异步请求
资源名称:Jquery Ajax异步处理Json数据 中文WORD版内容简介:本文档主要讲述的是Jquery Ajax 异步处理Json数据;希望对大家会有帮助;感兴趣的朋友可以过来看看资源截图: 资源太大,传百度网盘了,链接在附件中,...
在官网上一直下载不下来 然后共享在这 jquery.json-2.3.min.js和jquery.json-2.3.js
用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用JSONObject等插件封装的JSON对象,与此亦是大同小异,这里...
该实例通过ASP.NET编程语言全面解剖JSON多对象的组成原理,JSON是基于轻量级的数据传输方式进行数据通信的方式。
最近有朋友反映使用jquery.ajax调用返回json时出现中文乱码,遇到此问题,非常棘手,下面小编帮大家解决JQuery ajax 返回json时出现中文乱码问题,感兴趣的朋友跟着一起了解了解吧