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 相关文章推荐
jQuery控制cookie过期时间的方法
Apr 07 Javascript
js实现页面跳转的五种方法推荐
Mar 10 Javascript
JavaScript简单实现弹出拖拽窗口(二)
Jun 17 Javascript
浅谈js中字符和数组一些基本算法题
Aug 15 Javascript
Vue.js实战之利用vue-router实现跳转页面
Apr 01 Javascript
微信小程序开发之实现自定义Toast弹框
Jun 08 Javascript
js判断文件类型大小并给出提示的实现方法
Jan 03 Javascript
vue嵌套路由与404重定向实现方法分析
May 04 Javascript
微信小程序开发之tabbar图标和颜色的实现
Oct 17 Javascript
在mpvue框架中使用Vant WeappUI组件库的注意事项【推进】
Jun 09 Javascript
vue 实现滚动到底部翻页效果(pc端)
Jul 31 Javascript
vue子组件改变父组件传递的prop值通过sync实现数据双向绑定(DEMO)
Feb 01 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
一个分页的论坛
2006/10/09 PHP
PHP 截取字符串函数整理(支持gb2312和utf-8)
2010/02/16 PHP
JavaScript 无符号右移赋值操作
2009/04/17 Javascript
Bookmarklet实现启动jQuery(模仿 云输入法)
2010/09/15 Javascript
Extjs EditorGridPanel中ComboBox列的显示问题
2011/07/04 Javascript
javascript设计模式 封装和信息隐藏(上)
2012/07/24 Javascript
jquery easyui combox一些实用的小方法
2013/12/25 Javascript
jQuery.lazyload+masonry改良图片瀑布流代码
2014/06/20 Javascript
使用nodejs开发cli项目实例
2015/06/03 NodeJs
JS实现超简单的仿QQ折叠菜单效果
2015/09/21 Javascript
JavaScript知识点总结之如何提高性能
2016/01/15 Javascript
一步步教大家编写酷炫的导航栏js+css实现
2016/03/14 Javascript
jquery ajax后台返回list,前台用jquery遍历list的实现
2016/10/30 Javascript
JS使用canvas中的measureText方法测量字体宽度示例
2019/02/02 Javascript
在 Vue 中编写 SVG 图标组件的方法
2020/02/24 Javascript
javascript实现贪吃蛇经典游戏
2020/04/10 Javascript
vuex实现购物车的增加减少移除
2020/06/28 Javascript
[01:35:53]完美世界DOTA2联赛PWL S3 Magma vs GXR 第二场 12.13
2020/12/17 DOTA
Python实现批量检测HTTP服务的状态
2016/10/27 Python
python中 logging的使用详解
2017/10/25 Python
对pandas数据判断是否为NaN值的方法详解
2018/11/06 Python
使用python实现unix2dos和dos2unix命令的例子
2019/08/13 Python
python基于K-means聚类算法的图像分割
2019/10/30 Python
Python3 使用map()批量的转换数据类型,如str转float的实现
2019/11/29 Python
Django用户身份验证完成示例代码
2020/04/03 Python
澳大利亚最受欢迎的美发和美容在线商店:Catwalk
2018/12/12 全球购物
公务员培训自我鉴定
2013/09/19 职场文书
信息管理员岗位职责
2013/12/01 职场文书
维修工先进事迹
2014/05/29 职场文书
有关九一八事变的演讲稿
2014/09/14 职场文书
教师四风问题整改措施
2014/09/25 职场文书
2015年效能监察工作总结
2015/04/23 职场文书
春晚观后感
2015/06/11 职场文书
新手,如何业余时间安排好写作、提高写作能力?
2019/10/21 职场文书
MySQL表的增删改查(基础)
2021/04/05 MySQL
Nginx静态压缩和代码压缩提高访问速度详解
2022/05/30 Servers