`
cml1988
  • 浏览: 4355 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

AJAX中文乱码的两类问题

 
阅读更多

AJAX中文问题分为两大类:

1)发送路径中的参数有中文,在服务器段接收参数值是乱码

例如:

var url="a.jsp?name=小李";
xmlHTTP.open ("post",url,true);

解决办法:

利用javascript的提供的escape()或encodeURI()方法

例如:

客户端:

var url="a.jsp?name=小李";
url=encodeURI(url); 
url=encodeURI(url); //两次,很关键[具体为什么,我也不清楚]
/********************************************/
也有人写成var url="a.jsp?name=escape("小李")";

功能和encodeURI方法类似。

/********************************************/
xmlHTTP.setrequestheader("cache-control","no-cache"); 
xmlHTTP.setrequestheader("Content-Type","application/x-www-form-urlencoded"); 
xmlHTTP.setrequestheader("contentType","text/html;charset=uft-8")//指定发送数据的编码格式
xmlHTTP.open ("post",url,true);

服务器端:

String name = request.getParameter("name"); 
name = java.net.URLDecoder.decode("name", "UTF-8");

2)返回来的responseText或responseXML的值中含有中文是乱码

原因:AJAX在接收responseText或responseXML的值的时候是按照UTF-8的格式来解码的,如果服务器段发送的数据不是UTF-8的格式,那么接收responseText或responseXML的值有可能为乱码。

解决办法:在服务器指定发送数据的格式:

在jsp文件中:

response.setContentType("text/text;charset=UTF-8");//返回的是txt文本文件

或是

response.setContentType("text/xml;charset=UTF-8");//返回的xml文件

总结:1)ajax提交数据的格式默认为utf-8,利用javascript的提供的escape()或encodeURI()方法.在服务器端接收的时候要使用Java.net.URLDecoder.decode("","UTF-8")方法进行解码.

2)xtmlhttp 返回的数据默认的字符编码是utf-8,所以服务器要向客户端发送数据的时候,也要采用utf-8编码

如果上述方法仍然解决不了乱码问题,那你尝试一下把jsp,htm,java文件用UTF-8编码格式保存.

总之:前后台数据交互都采用utf-8编码就行了.

分享到:
评论

相关推荐

    Ajax 中文乱码问题

    在使用Ajax进行数据传输时,中文乱码问题通常出现在以下两个环节: 1. **发送表单数据时中文乱码**:当通过Ajax发送含有中文字符的表单数据时,如果没有正确的编码,接收端解析时就会出现乱码。 2. **接收服务器...

    ajax到servlet乱码解决

    通过使用 `encodeURI()` 函数在 AJAX 客户端编码 URL 参数和使用 `URLDecoder` 类在 Servlet 服务器端解码 URL 参数,我们可以解决 AJAX 到 Servlet 乱码问题。这样,我们的应用程序可以正确地处理中文参数,从而...

    AJAX中文乱码问题探讨及解决

    AJAX中文问题分为两大类: 1)发送路径中的参数有中文,在服务器段接收参数值是乱码 例如: var url=”a.jsp?name=小李”; xmlHTTP.open (“post”,url,true); 解决办法: 利用javascript的提供的escape()或...

    struts中文乱码问题解决详细步骤

    解决这个问题通常涉及到编码设置的调整,下面将详细介绍两种方法来解决Struts中的中文乱码问题。 **方法一:配置Filter** 1. **添加过滤器**:首先,我们需要在Web应用的`web.xml`文件中添加一个`...

    Ajax使用POST提交中文乱码问题.docx

    总结来说,解决Ajax POST提交中文乱码问题的关键在于前端编码两次并确保后端使用正确的解码方式。同时,服务器端页面的编码设置也很重要,如`<%@ page pageEncoding="GB18030"%>`确保了JSP页面的编码一致性。在实际...

    Ajax乱码解决方案

    ### Ajax乱码解决方案 在进行Ajax开发的过程中,经常会遇到数据编码问题导致的乱码现象。这类问题虽然看似简单,但若处理不当,则可能耗费大量时间进行调试与解决。本文将结合一个具体的案例来探讨如何有效地解决...

    JQuery发送ajax请求时中文乱码问题解决

    总结以上所述,要解决JQuery发送ajax请求时出现的中文乱码问题,需要从两个方面着手:确保Web项目的web.xml配置文件中设置了正确的字符编码过滤器,以及在JSP页面中设置了正确的字符编码,并使用POST方法发送ajax...

    Javascript和Ajax中文乱码吐血版解决方案

    本文将详细介绍如何解决这类问题,确保中文字符在JavaScript和Ajax通信中正确显示。 首先,我们需要理解中文乱码产生的原因。乱码通常是由字符编码不一致导致的,即浏览器、服务器以及网页文件之间的编码设置不匹配...

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

    在进行Ajax请求中传输中文内容时,经常会遇到编码格式不匹配导致的乱码问题。这一问题通常出现在前端使用JavaScript的AJAX技术与后端服务进行交互时,特别是当URL或者表单提交的数据中包含非ASCII字符(如中文)时。...

    jquery的ajax()函数传值中文乱码解决方法介绍

    在使用jQuery的ajax()函数进行数据传输时,中文乱码问题常常困扰着开发者。这个问题主要出现在数据发送到服务器时,由于编码格式不一致导致的字符乱码。以下是一些解决此问题的方法: 方法一:使用`encodeURI()`...

    jquery ajax post提交数据乱码

    在使用jQuery的AJAX方法(如$.ajax()或$.post())进行数据提交时,可能会遇到在某些浏览器中数据乱码的问题。这通常与字符编码有关。以下是解决这一问题的一些方法: 1. 统一编码:确保文件编码、数据库编码和网页的...

    escape函数解决js中ajax传递中文出现乱码问题

    总结来说,当处理Ajax请求中的中文字符时,使用`escape()`函数可以避免乱码问题。不过,随着技术的发展,现代的JavaScript开发更倾向于使用`encodeURIComponent()`函数,它更全面地处理了各种字符的编码,包括中文...

    浅析AJAX乱码及错误解决方案

    **浅析AJAX乱码及错误解决方案** 在当前的网络环境中,JavaScript被广泛应用于网页交互,而AJAX技术更是让动态加载数据变得无处不在。然而,由于编码规范的不一致,尤其是在各种浏览器环境中,经常会出现乱码和...

    从js向Action传中文参数出现乱码问题的解决方法.docx

    在开发Web应用时,经常会遇到跨语言环境的数据传输问题,特别是在JavaScript(JS)与服务器端Action之间传递包含中文字符的参数时,乱码问题尤为常见。这个问题主要源于字符编码的不同处理,导致数据在传输过程中...

    struts2乱码与json插件(1)

    在这个主题中,“struts2乱码与json插件”主要关注两个方面:字符编码问题和JSON数据交互。 **字符编码问题** 在开发web应用时,乱码问题经常出现,尤其是在处理用户输入或显示非ASCII字符时。Struts2框架默认使用...

    pushlet使用说明(包括中文乱码)

    处理中文乱码问题通常涉及到设置正确的字符编码。在 JSP 文件中,确保页面编码设置为 UTF-8,如 `pageEncoding="UTF-8"`。同时,检查 Pushlet 的配置文件是否也有相应的编码设置,比如 pushlet.properties 中可能...

    ajax实现excel报表导出

    在实现Ajax导出Excel报表时,乱码问题是常见的困扰。当导出的Excel文件内容出现乱码时,首先应该检查的是字符集设置。如果后端未正确设置字符集,或者在Spring框架的过滤器中统一设置了字符集,可能会导致乱码。同样...

    ajax发送xml-java解析xml.doc

    在Java服务器端,首先设置`Request.ContentEncoding`来处理可能的中文乱码问题。接着,使用`XmlDocument`类创建一个新的XML文档对象,并使用`Load()`方法从请求的输入流中加载接收到的XML数据。这样,XML数据就被...

    Ajax 对象 包含post和get两种异步传输方式

    同时,为了防止中文乱码问题,在发送和接收数据时都进行了编码和解码处理。 具体来说,GET请求是通过创建一个XMLHttpRequest对象(简称XHR),然后调用xhr.open("GET", url, true)方法初始化一个GET请求,并通过xhr...

Global site tag (gtag.js) - Google Analytics