javascriptAJAX中文问题总结.doc

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
javascriptAJAX中文问题总结

2009-02-26 javascript AJAX 中文 问题总结 今天碰到了 Ajax 乱码的问题,在网上找了半天资料,试了很多种方法,最后发现还是这篇文章告诉了我正确的办法,特此感谢。原文地址 : /hulizhong/archive/2007/04/21/112416.html 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 = .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()方法.在服务器端接收的时候要使用.URLDecoder.decode(,UTF-8)方法进行解码. 2)xtmlhttp 返回的数据默认的字符编码是utf-8,所以服务器要向客户端发送数据的时候,也要采用utf-8编码 如果上述方法仍然解决不了乱码问题,那你尝试一下把jsp,htm,java文件用UTF-8编码格式保存. 总之:前后台数据交互都采用utf-8编码就行了. ----------------------------------------------- js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 1、?? 传递参数时需要使用encodeURIComponent,这样组合的url才不会被#等特殊字符截断。??????????????????????????? 例如:script language=javascriptdocument.write(a href=/?logoutaid=7u=+encodeURIComponent(/bruce42)+退出/a);/script 2、?? 进行url跳转时可以整体使用encodeURI 例如:Location.href=encodeURI(/do/s?word=百度ct=21); 3、?? js使用数据时可以使用escape [Huoho.Com编辑] 例如:搜藏中history纪录。 4、?? escape对0-255以外的unicode值进行编码时输出%u****格式,其它情况下escape,encodeURI,en

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档