`
Mysun
  • 浏览: 273535 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

JQuery JSON异步请求中文乱码问题

阅读更多
  最近在用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转码之后的结果是不一样的。所以编码和解码使用的字符集要对应才行。
分享到:
评论
4 楼 ksgimi 2011-07-14  
HttpServletResponse response = ServletActionContext.getResponse();
response.setCharacterEncoding("UTF-8");
response.getWriter().write(json);
3 楼 Soimissu_plum 2011-01-01  
flyingpig4 写道
我也是这样解决的。
但是我有个问题:
比如我是list,传的都是从数据库里面读取的值;
但我岂不是要一一判断是否为中文字符再转换呢?
有没有办法进行统一设置,就像过滤器一样。?

我的也是难道需要一一去转换麽?
2 楼 flyingpig4 2010-03-06  
我的邮箱是:flyallen5@gmail.com
希望楼主指导一下。谢谢
1 楼 flyingpig4 2010-03-06  
我也是这样解决的。
但是我有个问题:
比如我是list,传的都是从数据库里面读取的值;
但我岂不是要一一判断是否为中文字符再转换呢?
有没有办法进行统一设置,就像过滤器一样。?

相关推荐

    Json操作及中文乱码解决方案

    jQuery库中的`$.getJSON`是处理JSON数据的一个便捷方法,它将异步发送一个HTTP GET请求到指定的URL,并期望返回JSON格式的数据。 **一、$.getJSON基本使用** `$.getJSON`函数的语法如下: ```javascript $.getJSON...

    JQuery异步获取返回值中文乱码的解决方法

    针对JQuery异步获取返回值时遇到中文乱码的问题,文档中提出了一个有效的解决方法,这涉及了Web开发中常见的字符编码问题。为了彻底解决这一问题,我们需要从客户端到服务器端的整个数据交互流程中对字符编码进行...

    jquery uploadify scriptData 中文乱码

    在使用jQuery Uploadify插件时,用户可能会遇到“scriptData”参数中的中文数据出现乱码的问题。这通常是因为字符编码不一致导致的。Uploadify是一个非常流行的文件上传插件,它允许用户通过异步方式上传文件,同时...

    struts2乱码与json插件(1)

    在Struts2框架中,处理乱码问题通常需要对输入和输出进行正确的字符编码设置,而JSON插件则提供了方便的方式来处理数据交换,特别是对于需要与前端进行异步交互的应用。通过理解和配置`TextFilter.java`过滤器以及`...

    ASP.NET jquery.uploadify文件上传控件测试项目(已解决中文乱码)

    通过研究这些文件,开发者可以学习如何在自己的ASP.NET项目中集成和定制jQuery.uploadify,同时避免中文文件名乱码的问题。这个测试项目提供了一个完整的解决方案,对遇到类似问题的开发者有着很高的参考价值。

    Jquery通过JSON和Struts的Action交互[参照].pdf

    在SSH(Struts2、Spring、Hibernate)架构的项目中,使用jQuery与后台进行交互是常见的做法,特别是在处理异步请求时。本示例主要介绍了如何利用jQuery通过JSON与Struts2的Action进行数据交换,从而实现前端与后端的...

    struts2_json_jquery_集成详解.docx

    2. **中文乱码**:在Tomcat的server.xml中配置URIEncoding="UTF-8",确保中文字符正确编码。 这个集成过程展示了如何使用Struts2、JSON和jQuery实现前后端交互,创建一个简单的用户登录功能。通过AJAX,用户输入的...

    用ajax传递json到前台中文出现问号乱码问题的解决办法

    在进行Web开发时,使用AJAX技术与服务器进行异步通信,然后将服务器返回的JSON数据展示在前端页面上是一种常见需求。...通过上述方法,可以有效解决使用AJAX传递JSON数据到前台时出现的中文乱码问题。

    jQuery解析json数据实例分析

    本例中利用jQuery的$.get()方法发起异步AJAX请求,获取Servlet返回的JSON格式数据。获取到数据后,通过eval()函数将字符串转换为JavaScript对象,然后通过$.each()方法遍历JSON数组中的每一个对象。 5. jQuery对象 ...

    如何解决JQuery ajaxSubmit提交中文乱码

    在Web开发过程中,使用JQuery的ajaxSubmit方法进行表单提交时,中文乱码问题是一个常见的困扰。中文乱码问题通常发生在数据的提交和接收过程中,由于字符编码的不一致导致。为了解决这个问题,首先需要了解JQuery的...

    jquery中文乱码的多种解决方法

    在Web开发过程中,中文乱码是一个常见的问题,尤其是在使用jQuery进行异步请求时。本文将详细介绍如何解决使用jQuery时遇到的中文乱码问题,并提供多种解决方案。 #### 二、问题背景 当使用jQuery的`$.ajax`方法...

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

    本文将深入探讨Ajax请求中传输中文字符时遇到的乱码问题及其解决方案。 首先,让我们看看问题的背景。在JavaScript中,我们经常使用jQuery的`$.ajax()`函数发送异步请求,更新服务器上的数据。在示例代码中,有一个...

    jquery的ajax例子无错版

    标题“jquery的ajax例子无错版”表明这是一个关于jQuery AJAX用法的示例,且已针对可能出现的编码问题进行了处理,确保在utf_8和gb2312两种常见字符编码下都能正常显示,避免了乱码问题。在多语言网站或者处理中文...

    jQuery ajax方法传递中文时出现中文乱码的解决方法

    以下将详细介绍如何解决jQuery ajax方法在传递中文时出现的乱码问题。 首先,我们需要了解ajax请求的基本结构。一个典型的jQuery AJAX调用如下: ```javascript $.ajax({ url: 'your_server_url', type: 'POST',...

    jquery.base64.js jquery-1.12.4.min.js

    `jquery.base64.js` 提供了方便的API,使得开发者能轻松地在JavaScript中进行Base64的处理,特别对于中文字符,该插件可以确保编码和解码过程中的正确性,避免出现乱码问题。 这两个文件在实际开发中的结合使用,...

    ajax中文乱码的各种解决办法总结

    在Web开发中,Ajax(Asynchronous JavaScript and XML)技术常用于实现页面的异步更新,但处理中文字符时,由于编码不一致,可能会出现乱码问题。本文将针对标题和描述中提到的Ajax中文乱码问题,提供几种常见的解决...

    jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解

    当我们用javascript写ajax程序写得很“开心”的时候,突然有人告诉你有一种东西叫jquery,它会告诉你不直接和HttpRequest是多么的快乐,同时你再也不需要再烦恼纠结的ajax乱码问题,更幸福的是你的js代码将大大地...

    jQuery结合Json提交数据到Webservice,并接收从Webservice返回的Json数据

    当GET请求中包含非ASCII字符(如中文)时,需要对参数进行编码,例如使用`encodeURI`函数,以确保参数值在服务器端正确解析,避免乱码问题。 #### 9. Json数据的序列化与反序列化 服务器端需要将Json字符串转换为...

Global site tag (gtag.js) - Google Analytics