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 相关文章推荐
让插入到 innerHTML 中的 script 跑起来的实现代码
Jul 01 Javascript
CSS+JS构建的图片查看器
Jul 22 Javascript
JavaScript中实现sprintf、printf函数
Jan 27 Javascript
js根据鼠标移动速度背景图片自动旋转的方法
Feb 28 Javascript
JavaScript jquery及AJAX小结
Jan 24 Javascript
JS判断用户用的哪个浏览器实例详解
Oct 09 Javascript
AngularJs中$cookies简单用法分析
May 30 Javascript
深入解析koa之中间件流程控制
Jun 17 Javascript
使用vscode快速建立vue模板过程详解
Oct 10 Javascript
vue-element-admin 菜单标签失效的解决方式
Nov 12 Javascript
JavaScript的变量声明与声明提前用法实例分析
Nov 26 Javascript
Vue开发中常见的套路和技巧总结
Nov 24 Vue.js
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原创论坛
2006/10/09 PHP
用PHP实现多服务器共享SESSION数据的方法
2007/03/16 PHP
php入门学习知识点一 PHP与MYSql连接与查询
2011/07/14 PHP
PHP使用DES进行加密与解密的方法详解
2013/06/06 PHP
PHP中session跨子域的三种实现方法
2016/07/25 PHP
PHP使用GD库制作验证码的方法(点击验证码或看不清会刷新验证码)
2017/08/15 PHP
yii2.0整合阿里云oss的示例代码
2017/09/19 PHP
禁止F5等快捷键的JS代码
2007/03/06 Javascript
JavaScript Timer实现代码
2010/02/17 Javascript
jquery实现智能感知连接外网搜索
2013/05/21 Javascript
addEventListener()第三个参数useCapture (Boolean)详细解析
2013/11/07 Javascript
JavaScript数据类型详解
2015/04/01 Javascript
简单分析javascript面向对象与原型
2015/05/21 Javascript
jQuery插件formValidator实现表单验证
2016/05/23 Javascript
jQuery与JS加载事件用法分析
2016/09/04 Javascript
Nodejs实现短信验证码功能
2017/02/09 NodeJs
NodeJS配置HTTPS服务实例分享
2017/02/19 NodeJs
Vue实现active点击切换方法
2018/03/16 Javascript
mpvue+vuex搭建小程序详细教程(完整步骤)
2018/09/30 Javascript
jQuery轻量级表单模型验证插件
2018/10/15 jQuery
详解vue-cli+element-ui树形表格(多级表格折腾小计)
2019/04/17 Javascript
在layui中使用form表单监听ajax异步验证注册的实例
2019/09/03 Javascript
基于vue+element实现全局loading过程详解
2020/07/10 Javascript
在Python中使用全局日志时需要注意的问题
2015/05/06 Python
Python 加密的实例详解
2017/10/09 Python
python3使用pyqt5制作一个超简单浏览器的实例
2017/10/19 Python
pandas 时间格式转换的实现
2019/07/06 Python
世界上第一个创建了罩杯系统的美国内衣品牌:Maidenform
2019/03/23 全球购物
英国标志性生活方式品牌:Skinnydip London
2019/12/15 全球购物
女大学生毕业找工作的自我评价
2013/10/03 职场文书
20年同学聚会感言
2014/02/03 职场文书
工作决心书范文
2014/03/11 职场文书
2015年学生会主席工作总结
2015/04/21 职场文书
安全第一课观后感
2015/06/18 职场文书
测量JavaScript函数的性能各种方式对比
2021/04/27 Javascript
python 单机五子棋对战游戏
2022/04/28 Python