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编码就行了.
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jiaoxiaguoke/archive/2009/12/31/5110991.aspx
分享到:
相关推荐
本文将深入探讨Ajax中文乱码问题的成因,并提供一系列解决方案。 **一、问题原因** 1. **编码格式不一致**:服务器与客户端(浏览器)之间使用的字符编码格式不同,例如服务器使用GBK编码,而浏览器使用UTF-8编码...
**Ajax使用示例——Unicode转换中文** Ajax,全称Asynchronous JavaScript and XML,是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新,...
### Ajax 中文乱码问题详解 #### 一、引言 在进行Web开发的过程中,我们经常需要使用Ajax技术来实现异步数据交换。然而,在处理包含中文字符的数据时,经常会遇到中文乱码的问题。这个问题主要源于不同的编码方式...
在实现过程中,Ajax-check控件可能会依赖于某些库或API,如pinyin.js或者其他的中文转拼音库。这些库通常会基于Unicode字符集和汉语拼音规则,将每个汉字转换为其对应的拼音表示。同时,为了分组显示,控件可能还...
本文将深入探讨Ajax中文乱码问题的原因及其解决方案。 首先,我们需要理解Ajax乱码的根源。当JavaScript发送HTTP请求时,如果服务器和客户端之间关于字符编码的约定不一致,就会导致乱码。常见的原因包括: 1. **...
通过以上方法,我们可以有效地解决AJAX传递中文参数时可能出现的乱码问题。关键是在发送端进行编码,在接收端进行相应的解码处理。同时,保持前后端以及数据库字符集的一致性也是很重要的。掌握了这些技巧后,开发者...
**Ajax设计模式中文** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使得网页实现异步更新,提高了用户体验。Ajax...
CakePHP框架中实现Ajax传值是通过AJAX (Asynchronous JavaScript and XML) 技术与后端的...通过以上知识点的掌握,开发者可以有效地在CakePHP框架中实现Ajax传值的功能,解决中文乱码和路径问题,以及优化用户体验。
针对Ajax中文乱码问题,可以采取以下解决方案: - **检查文件编码**:确保HTML、CSS、JavaScript等文件使用正确的编码格式,如UTF-8。 - **统一编码规范**:在前后端保持一致的字符集,避免在传输过程中出现乱码。 ...
中文乱码问题在Web开发中是一个常见的挑战,特别是在使用Ajax进行异步数据提交时。通过正确使用URL编码或选择合适的参数传递方式,可以有效地解决这一问题。在实际应用中,开发者应当根据具体情况选择最合适的方法,...
在Web开发中,尤其是在使用Java与JSP技术栈进行开发时,经常会遇到的一个问题是:如何处理AJAX请求中的中文字符乱码问题。本篇文章将详细介绍如何通过前端编码处理、后端参数接收以及响应头设置等手段来有效解决这一...
在JSP中,当使用Ajax进行GET请求时,可能会遇到中文乱码的问题。这通常是由于URL编码不匹配或处理不当导致的。以下是一些解决这个问题的关键知识点和步骤: 1. **URL编码问题**: URL编码是一种标准,用于将特殊...
### Ajax4jsf用户指南知识点总结 #### 一、引言 - **简介**:Ajax4JSF是一款开源框架,其主要目标是为JavaServer Faces(JSF)项目添加Ajax功能,无需编写JavaScript代码。 - **特点**: - 充分利用JSF框架的优点...
在这个项目里,你可以看到: <br>1.如何使用JQuery和Asp.NET实现Ajax技术 2.如何将.NET对象序列化成JSON 3.如何使用Sinoprise.Chinese取汉字的拼音 <br>http://www.sinoprise.cn/showtopic-126.aspx
此外,还要考虑错误处理、跨域问题(CORS)以及安全方面,如防止XSS(跨站脚本攻击)和CSRF(跨站请求伪造)等。文件"前台ajax与后台json传递.txt"可能包含了更详细的代码示例和解释,这将帮助你进一步掌握这些概念...
AJAX is a technology that runs in your browser. It uses asynchronous data transfer between the browser and the web server, allowing web pages to request small bits of information from the server ...
UTF-8编码是一种常见的Unicode实现,它使用1到4个字节来表示每个Unicode字符,对于中文汉字,通常每个字占用3个字节。因此,当Ajax发送或接收UTF-8编码的数据时,理论上不应出现乱码。 然而,乱码问题可能源于以下...
在IT领域,特别是Web开发中,字符编码的处理是一大挑战,尤其是在跨浏览器、跨平台的环境下,如在Ajax请求中遇到的FireFox与IE之间的乱码兼容问题。本文将深入探讨这一问题,并提供详细的解决方案。 ### Ajax与字符...
**Ajax 页面交互** Ajax(Asynchronous JavaScript and XML)是一种在...《W3Cfuns-Head First Ajax(中文版)》这本书为初学者提供了一个很好的起点,帮助他们快速理解和掌握Ajax的核心原理及其在实际项目中的应用。