AJAX乱码的两类问题

2016-02-19 14:09 1 1 收藏

人生本是一个不断学习的过程,在这个过程中,图老师就是你们的好帮手,下面分享的AJAX乱码的两类问题懂设计的网友们快点来了解吧!

【 tulaoshi.com - Web开发 】

网页制作Webjx文章简介:AJAX中文问题分为两大类.
  
  AJAX中文问题分为两大类:
  
  1)发送路径中的参数有中文,在服务器段接收参数值是乱码
  
  例如:
  
  varurl="a.jsp?name=小李";
  
  xmlHTTP.open("post",url,true);
  
  解决办法:
  
  利用javascript的提供的escape()或encodeURI()方法
  
  例如:
  
  客户端:
  
  varurl="a.jsp?name=小李";
  
  url=encodeURI(url);
  
  url=encodeURI(url);//两次,很关键[具体为什么,我也不清楚]
  
  /********************************************/
  
  也有人写成varurl="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);
  
  服务器端:
  
  Stringname=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编码就行了.
  

来源:http://www.tulaoshi.com/n/20160219/1606290.html

延伸阅读
标签: Web开发
在用ajax传递参数时,一般就是js向程序页面传递和程序向js文件传递两种情况,当出现中文汉字时,会出现乱码。 因为存在上述两种情况,所以解决起来也要分开对待。 这里是php系统中遇到的问题,所以以php为实例来解决ajax传递中文的问题。 1.Ajax向程序页面里传递中文汉字时出现乱码的情况:  Ajax中先用encodeURIComponent对要提交的...
标签: 孕妇食谱
适宜孕早期孕妇吃的水果     孕前三个月是www.tulaoshi.com胎儿形成的重要时刻,因此孕妇吃东西一定要非常小心。现在图老师小编将为您整理了三种有营养的水果,既能让孕妇补充营养,又不会对胎儿产生影响。一起来看看吧!     香蕉补充孕早期营养     香蕉具有清热解...
标签: Web开发
当参数值为英文是可以正确写入数据库,但为中文是就不行,如何解决这个中文乱码的问题呢? 下面一步步教你如果解决php与ajax开发过程中,提交中文参数乱码的问题。 出现的原因是因为参数传递的格式问题. 因为英文在参数传递转换两边格式一样所以没问题. 而中文状态下的解析会出现构造组合问题.出现类似繁体的乱玛. 可以这样解决: ...
标签: Web开发
创建xmlhttprequest 对象。 代码如下: return window.ActiveXObject ? new window.ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest; 次对象一个 onreadystatechange 事件。有两个属性readyState,status。简单的AJAX我们将使用到这几个东西。 以下使用到的createXMLHttp()方法就是上面这段代码! 1:以GET方式发出一个请求的实...
标签: 孕期
女人眼垢多 健康差 正常人在晨起或早晨洗脸时,会发现在眼角处有极少量的分泌物存在,这与夜间睡觉时眼睑运动减少,泪液分泌减少,排出迟缓有关。正常人的眼分泌物主要来自泪腺、睑板腺、眼表细胞分泌的黏液及脱落的眼表上皮细胞等。大多为透明或淡白色,平常不易察觉。由于分泌物量小,并可及时从泪...

经验教程

880

收藏

66
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部