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 相关文章推荐
js几个不错的函数 $$()
Oct 09 Javascript
js静态作用域的功能。
Dec 25 Javascript
jquery.boxy插件的iframe扩展代码
Jul 02 Javascript
使用Jquery打造最佳用户体验的登录页面的实现代码
Jul 08 Javascript
js替代copy(示例代码)
Nov 27 Javascript
JavaScript实现彩虹文字效果的方法
Apr 16 Javascript
基于JavaScript实现根据手机定位获取当前具体位置(X省X市X县X街道X号)
Dec 29 Javascript
input点击后placeholder中的提示消息消失
Jan 15 Javascript
javascript字符串对象常用api函数小结(连接,替换,分割,转换等)
Sep 20 Javascript
JavaScript对象_动力节点Java学院整理
Jun 23 Javascript
ztree加载完成后显示勾选节点的实现代码
Oct 22 Javascript
浅谈nuxtjs校验登录中间件和混入(mixin)
Nov 06 Javascript
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
Windows7下PHP开发环境安装配置图文方法
2010/05/20 PHP
浅谈PHP中output_buffering
2015/07/13 PHP
Javascript 布尔型分析
2008/12/22 Javascript
关于javascript中的typeof和instanceof介绍
2012/12/04 Javascript
JavaScript回调(callback)函数概念自我理解及示例
2013/07/04 Javascript
Json实现异步请求提交评论无需跳转其他页面
2014/10/11 Javascript
javascript实现禁止复制网页内容
2014/12/16 Javascript
jQuery实现简单的手风琴效果
2020/04/17 jQuery
微信小程序简单实现form表单获取输入数据功能示例
2017/11/30 Javascript
代码详解Vuejs响应式原理
2017/12/20 Javascript
JavaScript常见JSON操作实例分析
2018/08/08 Javascript
微信小程序实现两个页面传值的方法分析
2018/12/11 Javascript
详解vue中router-link标签所必备了解的属性
2019/04/15 Javascript
vue 使用 canvas 实现手写电子签名
2020/03/06 Javascript
[58:58]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第二场
2018/04/05 DOTA
[01:33]PWL开团时刻DAY2-开雾与反开雾
2020/10/31 DOTA
python自动化工具日志查询分析脚本代码实现
2013/11/26 Python
python生成随机密码或随机字符串的方法
2015/07/03 Python
python读取excel指定列数据并写入到新的excel方法
2018/07/10 Python
Django代码性能优化与Pycharm Profile使用详解
2018/08/26 Python
python 3.7.0 安装配置方法图文教程
2018/08/27 Python
Python实现的特征提取操作示例
2018/12/03 Python
pandas分别写入excel的不同sheet方法
2018/12/11 Python
python多线程共享变量的使用和效率方法
2019/07/16 Python
pyinstaller打包找不到文件的问题解决
2020/04/15 Python
Python实现http接口自动化测试的示例代码
2020/10/09 Python
pycharm 关闭search everywhere的解决操作
2021/01/15 Python
html5+css3实现一款注册表单实例
2013/04/17 HTML / CSS
本科毕业生求职自荐信
2014/04/09 职场文书
银行求职自荐信
2014/06/30 职场文书
生物工程专业求职信
2014/09/03 职场文书
12.4全国法制宣传日活动方案
2014/11/02 职场文书
北京英语导游词
2015/02/12 职场文书
入党转正申请报告
2015/05/15 职场文书
聊聊mysql都有哪几种分区方式
2022/04/13 MySQL
Python爬取奶茶店数据分析哪家最好喝以及性价比
2022/09/23 Python