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 相关文章推荐
JavaScript原型继承之基础机制分析
Aug 26 Javascript
javascript编码的几个方法详细介绍
Jan 06 Javascript
HTTP 304错误的详细讲解
Nov 13 Javascript
JS获取一个未知DIV高度的方法
Aug 09 Javascript
jquery 实现回车登录详解及实例代码
Oct 23 Javascript
使用JavaScript触发过渡效果的方法
Jan 19 Javascript
js实现网页定位导航功能
Mar 07 Javascript
JavaScript运动框架 多物体任意值运动(三)
May 17 Javascript
label+input实现按钮开关切换效果的实例
Aug 16 Javascript
解决layui table表单提示数据接口请求异常的问题
Sep 24 Javascript
简单了解常用的JavaScript 库
Jul 16 Javascript
OpenLayer学习之自定义测量控件
Sep 28 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
PHP5 字符串处理函数大全
2010/03/23 PHP
PHP 获取客户端 IP 地址的方法实例代码
2018/11/11 PHP
PHP实现二维数组按照指定的字段进行排序算法示例
2019/04/23 PHP
关于javascript 回调函数中变量作用域的讨论
2009/09/11 Javascript
Javascript 定时器调用传递参数的方法
2009/11/12 Javascript
Javascript获取HTML静态页面参数传递值示例
2013/08/18 Javascript
javascript中对Attr(dom中属性)的操作示例讲解
2013/12/02 Javascript
javascript刷新父页面的各种方法汇总
2014/09/03 Javascript
详解JavaScript的while循环的使用
2015/06/03 Javascript
jQuery实现的分子运动小球碰撞效果
2016/01/27 Javascript
一道常被人轻视的web前端常见面试题(JS)
2016/02/15 Javascript
jQuery 常用代码集锦(必看篇)
2016/05/16 Javascript
JavaScript通过HTML的class来获取HTML元素的方法总结
2016/05/24 Javascript
Ext JS 实现建议词模糊动态搜索功能
2017/05/13 Javascript
简单实现JavaScript弹幕效果
2020/08/27 Javascript
js推箱子小游戏步骤代码解析
2018/01/10 Javascript
vue使用axios上传文件(FormData)的方法
2019/04/14 Javascript
python正则表达式去掉数字中的逗号(python正则匹配逗号)
2013/12/25 Python
Python入门教程之if语句的用法
2015/05/14 Python
python交互式图形编程实例(三)
2017/11/17 Python
python 字符串只保留汉字的方法
2018/11/16 Python
将tensorflow模型打包成PB文件及PB文件读取方式
2020/01/23 Python
Python中使用filter过滤列表的一个小技巧分享
2020/05/02 Python
使用python操作lmdb对数据读取的实例
2020/12/11 Python
HTML5播放实现rtmp流直播
2020/06/16 HTML / CSS
Wiggle中国:英国骑行、跑步、游泳 & 铁三运动装备专卖网店
2016/08/02 全球购物
广告学毕业生求职信
2014/01/30 职场文书
《盲人摸象》教学反思
2014/02/16 职场文书
《真想变成大大的荷叶》教学反思
2014/04/14 职场文书
大学生村官个人对照检查材料(群众路线)
2014/09/26 职场文书
爱的教育观后感
2015/06/17 职场文书
Python如何配置环境变量详解
2021/05/18 Python
nginx配置虚拟主机的详细步骤
2021/07/21 Servers
dubbo服务整合zipkin详解
2021/07/26 Java/Android
Win11 Build 22000.51版本文件资源管理器“命令栏”和上下文菜单有什么新变化?
2021/11/21 数码科技
python blinker 信号库
2022/05/04 Python