`
fastwind
  • 浏览: 324474 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

AJAX技术使用XMLHttpRequest对象传递参数的中文乱码问题

阅读更多

在浏览器端使用XMLHttpRequest对象向服务器端传送中文参数,如果不在浏览器端和服务器端进行处理时,会出现中文乱码问题.针对这种问题,有很多的解决办法,但往往都是在IE下可以正常显示中文,在其他浏览器下(比如FireFox)却仍然是乱码.在FireFox下解决了乱码问题,但回到IE下访问却出现了乱码问题.所以针对要在目前流行的各种浏览器下解决中文乱码问题,才能使编写的Web程序变得通用.
针对这种问题的解决方案,我总结大致有两种:

一,在浏览器端对要传递的中文参数进行编码处理.代码如下:

xmlhttp.open("POST","AjaxServlet",true); //请求参数初始化

xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //因为请求方式为POST,所以这里要设置请求头.(如果请求方式为GET,此句代码可以省略)
xmlhttp.send("name="+encodeURI(encodeURI("中国"))); //向服务器端发送参数


在服务器端代码:
PrintWriter out = response.getWriter(); //得到response的输出流对象

String name1 = request.getParameter("name"); //得到KEY为"name"的请求参数
String name = URLDecoder.decode(name1,"utf-8"); //对得到的参数进行解码

out.print(name); //向浏览器端发送数据


二,在浏览器端对要传递的中文参数进行编码处理.代码如下:

xmlhttp.open("POST","AjaxServlet",true); //请求参数初始化

xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //因为请求方式为POST,所以这里要设置请求头.(如果请求方式为GET,此句代码可以省略)

xmlhttp.send("name="+encodeURI("中国")); //向服务器端发送参数

在服务器端代码:

PrintWriter out = response.getWriter(); //得到response的输出流对象

String name1 = request.getParameter("name"); //得到KEY为"name"的请求参数
String name = new String((name1.getBytes("ISO-8859-1")),"UTF-8"); //对得到的参数进行解码
out.print(name); //向浏览器端发送数据
以上两种方法,在使用XMLHttpRequest对象传递中文参数时,乱码问题可以在任意浏览器下解决,正确显示中文.


该文章转载自网络大本营:http://www.xrss.cn/Dev/AJAX/2007101717013.Html






分享到:
评论
1 楼 vera_sq 2009-12-04  
你的方法我试过,还是不行呢!

相关推荐

    Ajax中文乱码问题解决方案

    在实际开发中,可以结合使用以上方法来解决Ajax中文乱码问题。例如,可以使用jQuery的`$.ajax`方法,设置`contentType`和`dataType`属性,以及在成功回调函数中处理响应数据: ```javascript $.ajax({ url: 'your-...

    ajax中使用javascript的send方法post参数

    通过本文的介绍,我们了解了如何在AJAX中使用JavaScript的`send`方法来发送POST请求,并且详细探讨了如何设置正确的HTTP头部信息以避免中文乱码等问题。此外,还介绍了如何在服务器端使用`Request.Form`和`Request....

    escape --AJAX和JS传中文乱码的最终解决方案

    总结来说,解决AJAX和JS传中文乱码问题的关键在于理解各种编码方式,以及在客户端和服务器之间正确地转换和传递数据。通过合理运用JavaScript的"escape"、"encodeURIComponent"等函数,并确保统一的编码标准,我们...

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

    在使用jQuery的AJAX方法进行数据交互时,有时会遇到中文字符乱码的问题。这是因为浏览器、服务器和前端之间编码不一致导致的。本文将详细解释这个问题,并提供有效的解决方案。 首先,我们要理解AJAX(Asynchronous...

    ajax乱码解决汇总

    当使用Ajax GET请求返回页面时,响应文本(RESPONSETEXT)中的中文乱码通常是因为XMLHttpRequest对象按照UTF-8解码了服务器返回的非UTF-8编码的响应体。为解决此问题,服务器需要在响应头中明确指定编码类型,例如在...

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

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

    ajax回调函数参数传递正确方法

    然而,问题在于,如果直接将带有参数的函数绑定给`onreadystatechange`,这些参数可能无法正确传递,因为XMLHttpRequest对象本身不会提供这些参数。 例如,考虑以下代码: ```javascript function orgEval(req, ...

    jquery.ajax的url中传递中文乱码问题的解决方法

    在Web开发过程中,中文乱码问题是一个常见的问题,尤其是在使用jquery.ajax方法发送数据到服务器时。由于历史原因和技术细节的差异,如果不正确处理编码,中文字符在URL中传递时经常会遇到乱码现象。本文介绍了如何...

    ajax

    在处理Ajax请求时,中文乱码问题是一个常见问题,主要涉及以下几点: - **请求头编码设置**:对于POST请求,确保`Content-Type`设置为`application/x-www-form-urlencoded; charset=UTF-8`,其中`charset=UTF-8`...

    activemq ajax方式demo

    在本示例中,"activemq ajax方式demo"是一个使用Ajax技术与ActiveMQ进行交互的简单应用演示,主要目的是解决在Web通信过程中可能出现的中文乱码问题。让我们详细了解一下这个知识点。 首先,ActiveMQ是Apache软件...

    JSP XMLHttpRequest动态无刷新及其中文乱码处理

    JSP与XMLHttpRequest结合实现动态无刷新页面交互和中文乱码处理是WEB开发中常见的需求和问题解决方法。下面详细解读了相关的知识点。 知识点一:XMLHttpRequest及动态无刷新技术原理 XMLHttpRequest是一个...

    ajax请求乱码的解决方法(中文乱码)

    在进行Web开发时,我们经常会遇到字符编码问题,特别是在使用Ajax进行异步数据传输时,中文乱码是一个常见的困扰。本文将详细介绍如何解决Ajax请求中出现的中文乱码问题。 首先,我们需要理解Ajax请求的基本原理。...

    AJAX于jsp结合的一个例子

    在描述中提到的“AJAX和Java”示例,可能是AJAX调用Java Servlet或JSP页面,通过传递参数来执行特定的操作。例如,用户在前端触发一个事件,如按钮点击,此时JavaScript的AJAX函数会被调用,向服务器发送请求,...

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

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

    ajax与Servlet,传值Demo

    这个“ajax与Servlet,传值Demo”着重展示了如何利用Ajax实现页面局部更新,同时处理Servlet接收到的Ajax传递的数据,包括解决中文乱码问题。 Ajax的核心在于JavaScript,它允许网页在不重新加载整个页面的情况下与...

    ajax请求serlvet传送汉字

    在Web开发中,Ajax(Asynchronous JavaScript and XML)与Servlet技术常常结合使用,实现页面的异步更新,提高用户体验。本话题将详细讲解如何利用Ajax发送含有汉字的请求到Servlet,并在Servlet端处理这些汉字。 ...

    Ajax传输中文乱码问题的解决办法

    在使用Ajax进行数据传输时,中文字符可能会出现乱码问题,这主要是由于编码格式不一致导致的。本文将深入探讨Ajax传输中文乱码问题的原因,并提供相应的解决策略。 首先,我们需要理解Ajax的工作原理。Ajax,即异步...

    03AJAX-中文字符问题[借鉴].pdf

    由于中文字符在计算机中通常使用多字节来表示,因此在处理中文数据时,确保使用UTF-8编码是至关重要的,以避免乱码或数据损坏的问题。 7. **Servlet技术**:Servlet是Java EE(企业版Java)的一部分,是一种运行在...

Global site tag (gtag.js) - Google Analytics