escape函数解决js中ajax传递中文出现乱码问题


Posted in Javascript onOctober 30, 2014

本文实例讲述了escape函数解决js中ajax传递中文出现乱码问题,分享给大家供大家参考。具体方法如下:

一、问题描述:

本来网页特效中的escape()是将中文按iso-8859-1字符集进行url编码的,那样通过 request.getparameter()是能直接获取到请求参数的,但后来的javascript将escape()换成了unicode字符集编 码,如此一来,在jsp教程和servlet中就没法直接拿到请求参数了,具体原因我也不知道。

二、解决办法:

1、首先对中文字符进行两次escape()编码,如要传参数name,值为“你好”,则url的格式为....name=escape(escape("你好")),这样一来,在request.getparameter()就能取到编码后的参数了。

2、由于取到的参数是  %25u4f60%25u597d  格式的,没法用常规的urldecoder.decode()来进行解码,还好,这世上的牛人够多,在网上直接找到了一个工具类,能实现 javascript中escape()及unescape()式的编解码
 

<script language="javascript">  

function get(id){return document.getelementbyid(id).value}

function setting()

  {

   var xmlhttp;

 if(window.activexobject)

 {

  xmlhttp=new activexobject("microsoft.xmlhttp")

 }else{

   xmlhttp=new xmlhttprequest();

 }

 xmlhttp.onreadystatechange=function()

 {

    if(xmlhttp.readystate==4)

    {

       if(xmlhttp.status==200)

    {

       alert("成功!")

    }else{

      alert(xmlhttp.status)

    }

    }

   }

 var url="action.asp教程?action=setting&rnd="+math.random()

 xmlhttp.open("post",url,true)

 var senddate ="title="+escape(get("title"))+"&conn_way="+escape(get("conn_way"))+"&databasename="+escape(get("databasename"))+"&sqlusername="+escape(get("sqlusername"))+"&sqlpassword="+escape(get("sqlpassword"))+"&sqllocalname="+escape(get("sqllocalname"))+"&pg_size="+escape(get("pg_size"))+"&adminid="+escape(get("adminid"))+"&adminpwd="+escape(get("adminpwd"));

2727 xmlhttp.setrequestheader('content-type','application/x-www-form-urlencoded');

 xmlhttp.send(senddate)

  }

</script>

上面的实例我们中文只用了escape函数,语法如下:

定义和用法:
escape() 函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。
语法:

escape(string)参数 描述
string 必需。要被转义或编码的字符串。

返回值:
已编码的 string 的副本。其中某些字符被替换成了十六进制的转义序列。

说明:
该方法不会对 ascii 字母和数字进行编码,也不会对下面这些 ascii 标点符号进行编码: - _ . ! ~ * ' ( ) 。其他所有的字符都会被转义序列替换。

提示和注释:
提示:可以使用 unescape() 对 escape() 编码的字符串进行解码。
注释:ecmascript v3 反对使用该方法,应用使用 decodeuri() 和 decodeuricomponent() 替代它

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
如何阻止复制剪切和粘贴事件为了表单内容的安全
May 23 Javascript
利用try-catch判断变量是已声明未声明还是未赋值
Mar 12 Javascript
Jquery ajax 同步阻塞引起的UI线程阻塞问题
Nov 17 Javascript
jquery中object对象循环遍历的方法
Dec 18 Javascript
利用CSS3在Angular中实现动画
Jan 15 Javascript
jQuery EasyUI菜单与按钮详解
Jul 13 Javascript
javascript对浅拷贝和深拷贝的详解
Oct 14 Javascript
vue动态路由实现多级嵌套面包屑的思路与方法
Aug 16 Javascript
Vue 处理表单input单行文本框的实例代码
May 09 Javascript
详解小程序中h5页面onShow实现及跨页面通信方案
May 30 Javascript
vue+elementUI动态生成面包屑导航教程
Nov 04 Javascript
Vue项目利用axios请求接口下载excel
Nov 17 Vue.js
js防止DIV布局滚动时闪动的解决方法
Oct 30 #Javascript
js实现window.open不被拦截的解决方法汇总
Oct 30 #Javascript
一个JavaScript获取元素当前高度的实例
Oct 29 #Javascript
JS 实现列表与多选框选择附预览动画
Oct 29 #Javascript
一个JavaScript操作元素定位元素的实例
Oct 29 #Javascript
js实现ArrayList功能附实例代码
Oct 29 #Javascript
JQuery 实现在同一页面锚点链接之间的平滑滚动
Oct 29 #Javascript
You might like
PHP日期时间函数的高级应用技巧
2009/05/16 PHP
PHP正则的Unknown Modifier错误解决方法
2010/03/02 PHP
浅析PHP原理之变量(Variables inside PHP)
2013/08/09 PHP
php中url函数介绍及使用示例
2014/02/13 PHP
php实现在站点里面添加邮件发送的功能
2020/04/28 PHP
document 和 document.all 分别什么时候用
2006/06/22 Javascript
怎么让脚本或里面的函数在所有图片都载入完毕的时候执行
2006/10/17 Javascript
Jquery优化效率 提升性能解决方案
2010/09/06 Javascript
JQUERY 设置SELECT选中项代码
2014/02/07 Javascript
jquery退出each循环的写法
2014/02/26 Javascript
jquery解析xml字符串简单示例
2014/04/11 Javascript
JavaScript中伪协议 javascript:使用探讨
2014/07/18 Javascript
使用JavaScript和C#中获得referer
2014/11/14 Javascript
JavaScript制作淘宝星级评分效果的思路
2020/06/23 Javascript
js获取当前日期时间及其它日期操作汇总
2016/03/08 Javascript
基于vue实现可搜索下拉框定制组件
2020/03/26 Javascript
微信小程序自定义组件封装及父子间组件传值的方法
2018/08/28 Javascript
Node.js EventEmmitter事件监听器用法实例分析
2019/01/07 Javascript
修改vue源码实现动态路由缓存的方法
2020/01/21 Javascript
如何利用javascript接收json信息并进行处理
2020/08/06 Javascript
Python实现动态加载模块、类、函数的方法分析
2017/07/18 Python
如何用python写一个简单的词法分析器
2018/12/18 Python
PyTorch学习:动态图和静态图的例子
2020/01/06 Python
学python需要去培训机构吗
2020/07/01 Python
python上下文管理器异常问题解决方法
2021/02/07 Python
英国知名衬衫品牌美国网站:Charles Tyrwhitt美国
2016/08/28 全球购物
英国自行车商店:AW Cycles
2021/02/24 全球购物
学生会竞选演讲稿学习部
2014/08/25 职场文书
医院护士见习期自我鉴定
2014/09/15 职场文书
2014年十一国庆节爱国演讲稿
2014/09/23 职场文书
人身意外保险授权委托书
2014/10/01 职场文书
2017年寒假社区服务活动总结
2016/04/06 职场文书
员工升职自我评价
2019/03/26 职场文书
如何使用 resize 实现图片切换预览功能
2021/08/23 HTML / CSS
Oracle 触发器trigger使用案例
2022/02/24 Oracle
使用python将HTML转换为PDF pdfkit包(wkhtmltopdf) 的使用方法
2022/04/21 Python