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对字符串编码的几种方式使用指南
May 14 Javascript
JSON与XML优缺点对比分析
Jul 17 Javascript
jQuery实现的精美平滑二级下拉菜单效果代码
Mar 28 Javascript
微信小程序 增、删、改、查操作实例详解
Jan 13 Javascript
微信小程序开发图片拖拽实例详解
May 05 Javascript
五步轻松实现zTree的使用
Nov 01 Javascript
浅谈Node.js 沙箱环境
May 15 Javascript
微信小程序按钮去除边框线分享页面功能
Aug 27 Javascript
深入理解JavaScript的值传递和引用传递
Oct 24 Javascript
详解JS实现简单的时分秒倒计时代码
Apr 25 Javascript
使用JavaScript通过前端发送电子邮件
May 22 Javascript
JavaScript与JQuery框架基础入门教程
Jul 15 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
动漫女神老婆无限好,但日本女生可能就不是这么一回事了!
2020/03/04 日漫
PHP的反射类ReflectionClass、ReflectionMethod使用实例
2014/08/05 PHP
基于Laravel-admin 后台的自定义页面用法详解
2019/09/30 PHP
JavaScript窗口功能指南之在窗口中书写内容
2006/07/21 Javascript
jQuery中attr()方法用法实例
2015/01/05 Javascript
原生JS实现美图瀑布流布局赏析
2015/09/07 Javascript
js 获取元素所有兄弟节点的实现方法
2016/09/06 Javascript
详解如何较好的使用js
2016/12/16 Javascript
Vue.js常用指令的使用小结
2017/06/23 Javascript
JS实现问卷星自动填问卷脚本并在两秒自动提交功能
2020/06/17 Javascript
JS实现简单获取最近7天和最近3天日期的方法
2018/04/18 Javascript
详解小程序退出页面时清除定时器
2019/04/28 Javascript
Element-UI+Vue模式使用总结
2020/01/02 Javascript
Vue自定义组件双向绑定实现原理及方法详解
2020/09/03 Javascript
收集的几个Python小技巧分享
2014/11/22 Python
Python卸载模块的方法汇总
2016/06/07 Python
python数字图像处理之骨架提取与分水岭算法
2018/04/27 Python
pyqt5中QThread在使用时出现重复emit的实例
2019/06/21 Python
基于Python批量生成指定尺寸缩略图代码实例
2019/11/20 Python
python matplotlib 绘图 和 dpi对应关系详解
2020/03/14 Python
CSS3 实用技巧:实现黑白图像效果示例代码
2013/07/11 HTML / CSS
canvas中普通动效与粒子动效的实现代码示例
2019/01/03 HTML / CSS
Sunglasses Shop德国站:欧洲排名第一的太阳镜网站
2017/08/01 全球购物
Myholidays美国:在线旅游网站
2019/08/16 全球购物
定义一结构体变量,用其表示点坐标,并输入两点坐标,求两点之间的距离
2015/08/17 面试题
管道维修工岗位职责
2013/12/27 职场文书
毕业生个人求职信范文分享
2014/01/05 职场文书
公益活动邀请函
2014/02/05 职场文书
《童年的发现》教学反思
2014/02/14 职场文书
请假条范文大全
2014/04/10 职场文书
家长对孩子的评语
2014/04/18 职场文书
五年级学生期末评语
2014/12/26 职场文书
医德医风学习心得体会
2016/01/25 职场文书
2019年新郎保证书3篇
2019/10/17 职场文书
JavaScript分页组件使用方法详解
2021/07/26 Javascript
Go语言基础切片的创建及初始化示例详解
2021/11/17 Golang