`
guodongbingtuan
  • 浏览: 41575 次
  • 性别: Icon_minigender_2
  • 来自: 山西
社区版块
存档分类
最新评论

AJAX中文问题

    博客分类:
  • java
阅读更多
 

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编码就行了.

 

解决方法:

1. 对中文参数编码encodeURI(chinesePara);
   poststr = "username="+encodeURI("中文");

2.服务器端获取参数后解码

String username = new String(request.getParameter("username").getBytes("ISO-8859-1"),"UTF8");  //关键所在

escape() & encodeURI() & encodeURIComponent()这三个函数都可以用来对URI进行encode或过滤特殊字符(#/$&+=?/等)。我的经验是最好用encodeURIComponent()(需要IE 5.5以上,FireFox当然没问题),因为对UTF-8支持比较好,不会遇到中文乱码问题,否则还需要进行编码转换,很麻烦的。使用其它两个函数都会发生丢失特殊字符的问题,例如空格变+号或者空格,引号,&=?等丢失的问题,

 

我的页面是用GB2312编码的,最后只在服务器用了一句

 String username = new String(request.getParameter("nickname").getBytes("ISO-8859-1"), "GB2312");

就解决了!

分享到:
评论

相关推荐

    Ajax中文问题

    **Ajax中文问题** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现异步更新。在网页应用中,Ajax可以创建...

    Ajax中文乱码问题解决方案

    本文将深入探讨Ajax中文乱码问题的成因,并提供一系列解决方案。 **一、问题原因** 1. **编码格式不一致**:服务器与客户端(浏览器)之间使用的字符编码格式不同,例如服务器使用GBK编码,而浏览器使用UTF-8编码...

    Ajax 中文乱码问题

    ### Ajax 中文乱码问题详解 #### 一、引言 在进行Web开发的过程中,我们经常需要使用Ajax技术来实现异步数据交换。然而,在处理包含中文字符的数据时,经常会遇到中文乱码的问题。这个问题主要源于不同的编码方式...

    jquery+asp ajax 中文乱码问题解决文档

    ### jQuery + ASP AJAX 中文乱码问题解决方案 在开发基于jQuery和ASP的Web应用程序时,中文乱码问题可能成为困扰开发者的一大难题。特别是在使用Ajax进行前后端数据交互时,中文字符可能会出现乱码现象,影响用户...

    ajax中文参数乱码问题解决方法

    主要解决在ajax中中文参数传递过程中,服务器接收到中文乱码的问题

    Ajax 中文手册 api

    总结,Ajax中文手册是学习Ajax技术的重要参考资料,它涵盖了Ajax的基础概念、工作原理、优缺点以及实际应用,帮助开发者更好地理解和运用Ajax来提升网页的交互性和性能。通过深入学习并实践,开发者可以创建出更加...

    AJAX中文问题解决方案【

    fsdfgsdgdsgdgdfgdfgfdgfdgfdg

    Ajax中文乱码问题解决方法

    本文将深入探讨Ajax中文乱码问题的原因及其解决方案。 首先,我们需要理解Ajax乱码的根源。当JavaScript发送HTTP请求时,如果服务器和客户端之间关于字符编码的约定不一致,就会导致乱码。常见的原因包括: 1. **...

    ajax实战中文版

    - **跨域问题**:同源策略限制了Ajax的使用,需采用JSONP、CORS等解决。 - **错误处理**:确保有良好的错误处理机制,捕获并处理异常。 - **用户体验**:显示加载指示器,避免用户对页面状态的困惑。 - **SEO**:...

    java认证_Ajax中文乱码问题及解决方法.doc

    【Java认证:Ajax中文乱码问题及解决方法】 在Java Web开发中,使用Ajax进行异步数据交互时,经常会遇到中文乱码的问题。这主要涉及到字符编码的处理,特别是当Ajax请求发送的数据包含中文字符时。以下是两种常见的...

    ajax中文帮助文档

    **Ajax(Asynchronous JavaScript and XML)**是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现异步更新。这一技术的核心在于JavaScript,XML则...

    ajax汉字验证码,ajax

    本话题将深入探讨如何使用Ajax实现汉字验证码功能。 汉字验证码的主要目的是防止恶意自动化的机器人或爬虫程序对网站进行非法操作,例如注册、登录或者提交表单。它通过显示随机生成的一串汉字,要求用户输入看到的...

    ajax中文API

    **Ajax中文API** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现异步更新。Ajax的核心是JavaScript对象...

    ajax验证码 验证码ajax 生成中文验证码

    4. **编码问题**:在传输和存储中文字符时,需要确保正确处理字符编码,如UTF-8,防止乱码。 5. **无障碍性**:对于视力障碍的用户,可以提供音频验证码作为替代方案。 结合Ajax技术和中文验证码,我们可以创建一...

    Head First Ajax 中文版

    深入浅出Ajax(中文版)和其他深入浅出系列书籍一样,使用许多有趣的视觉刺激来保持我们大脑思考的兴奋。在您读完书中第一章后,不但能够掌握一个基于Ajax的简单应用程序开发,而且还能够了解怎样让一个混乱的项目走上...

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

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

    Ajax中文帮助文档

    Ajax,全称Asynchronous JavaScript and XML(异步JavaScript与XML),是一种在...综上所述,Ajax中文帮助文档会详细介绍这些内容,并提供详细的示例代码和解决常见问题的策略,帮助开发者更好地理解和使用Ajax技术。

    ajax提交中文到servlet

    本文将深入探讨“ajax提交中文到servlet”的相关知识点,以解决在异步传输过程中处理中文字符的问题。 一、Ajax基础 Ajax的核心是通过JavaScript创建XMLHttpRequest对象,它允许浏览器在不重新加载整个网页的情况下...

    Struts框架下Ajax发送中文乱码问题的解决

    在实际应用中,我们常常会遇到Ajax与服务器交互时出现中文乱码的问题,尤其是在发送和接收中文数据时。这个问题主要涉及到字符编码的处理,解决起来需要对HTTP协议、字符编码原理以及Struts框架的工作机制有一定的...

    使用ajax可以传中文参数

    #### Ajax中文参数问题概述 在使用Ajax进行数据传输时,如果请求中包含了中文字符,由于编码方式的不同,这些中文字符在服务器端解析时可能会出现乱码现象。这主要是因为客户端(浏览器)与服务器端之间对于字符集...

Global site tag (gtag.js) - Google Analytics