AJAX乱码的两类问题

有恃无恐zt

有恃无恐zt

2016-02-19 14:09

人生本是一个不断学习的过程,在这个过程中,图老师就是你们的好帮手,下面分享的AJAX乱码的两类问题懂设计的网友们快点来了解吧!
网页制作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编码就行了.
  
展开更多 50%)
分享

猜你喜欢

AJAX乱码的两类问题

Web开发
AJAX乱码的两类问题

AJAX中文乱码的两类问题

Web开发
AJAX中文乱码的两类问题

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Ajax乱码问题整理

Web开发
Ajax乱码问题整理

解决Ajax中文乱码问题

Web开发
解决Ajax中文乱码问题

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

引起孕妇早产的两类原因

分娩
引起孕妇早产的两类原因

毒害宝宝的两类家居用品

新生儿护理 新生儿 新生儿呵护
毒害宝宝的两类家居用品

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

AJAX介绍(2)

AJAX介绍(2)

AJAX 数据库实例

AJAX 数据库实例
下拉加载更多内容 ↓