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圆形浮动菜单特效代码
Mar 03 Javascript
jquery实现隐藏与显示动画效果/输入框字符动态递减/导航按钮切换
Jul 01 Javascript
js 浏览本地文件夹系统示例代码
Oct 24 Javascript
node.js中的socket.io的广播消息
Dec 15 Javascript
javascript通过元素id和name直接取得元素的方法
Apr 28 Javascript
原生js实现移动端瀑布流式代码示例
Dec 18 Javascript
详解jQuery中的empty、remove和detach
Apr 11 Javascript
JS基于MSClass和setInterval实现ajax定时采集信息并滚动显示的方法
Apr 18 Javascript
js中的面向对象入门
Mar 06 Javascript
vue中七牛插件使用的实例代码
Jul 28 Javascript
详解Angular5路由传值方式及其相关问题
Apr 28 Javascript
JS自定义滚动条效果
Mar 13 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
php xfocus防注入资料
2008/04/27 PHP
ThinkPHP表单自动提交验证实例教程
2014/07/18 PHP
php将图片文件转换成二进制输出的方法
2015/06/10 PHP
php 访问oracle 存储过程实例详解
2017/01/08 PHP
Javascript string 扩展库代码
2010/04/09 Javascript
javascript中的作用域和上下文使用简要概述
2013/12/05 Javascript
纯JS实现旋转图片3D展示效果
2015/04/12 Javascript
JavaScript中this详解
2015/09/01 Javascript
如何根据百度地图计算出两地之间的驾驶距离(两种语言js和C#)
2015/10/29 Javascript
javascript正则表达式定义(语法)总结
2016/01/08 Javascript
jQuery实现侧浮窗与中浮窗切换效果的方法
2016/09/05 Javascript
js 原型对象和原型链理解
2017/02/09 Javascript
JSONP基础知识详解
2017/03/19 Javascript
JS库之Waypoints的用法详解
2017/09/13 Javascript
vue实现商品加减计算总价的实例代码
2018/08/12 Javascript
vue图片加载失败时用默认图片替换的方法
2019/08/29 Javascript
javascript canvas时钟模拟器
2020/07/13 Javascript
vue+element使用动态加载路由方式实现三级菜单页面显示的操作
2020/08/04 Javascript
javascript解析json格式的数据方法详解
2020/08/07 Javascript
用Python写冒泡排序代码
2016/04/12 Python
使用rst2pdf实现将sphinx生成PDF
2016/06/07 Python
Python 专题四 文件基础知识
2017/03/20 Python
Python3中的json模块使用详解
2018/05/05 Python
pyside+pyqt实现鼠标右键菜单功能
2020/12/08 Python
Python异常模块traceback用法实例分析
2019/10/22 Python
Python遍历字典方式就实例详解
2019/12/28 Python
CSS3+font字体文件实现圆形半透明菜单具体步骤(图解)
2013/06/03 HTML / CSS
HTML5 标准将把互联网视频扔回到黑暗时代
2010/02/10 HTML / CSS
html5使用canvas实现跟随光标跳动的火焰效果
2014/01/07 HTML / CSS
html5画布旋转效果示例
2014/01/27 HTML / CSS
Intersport西班牙:在线体育商店
2019/11/06 全球购物
DOM和JQuery对象有什么区别
2016/11/11 面试题
党的群众路线领导班子整改方案
2014/09/27 职场文书
2014年社区党建工作总结
2014/11/11 职场文书
前台接待员岗位职责
2015/04/15 职场文书
2016年优秀党务工作者先进事迹材料
2016/02/29 职场文书