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 相关文章推荐
原型方法的不同写法居然会影响调试的解决方法
Mar 08 Javascript
把html页面的部分内容保存成新的html文件的jquery代码
Nov 12 Javascript
jQuery为iframe的body添加click事件的实现代码
Apr 07 Javascript
什么是json和jsonp,jQuery json实例详详细说明
Dec 11 Javascript
用按钮控制iframe显示的网页实现方法
Feb 04 Javascript
js判断iframe内的网页是否滚动到底部触发事件
Mar 18 Javascript
详解Bootstrap按钮
Jan 04 Javascript
详解AngularJS中的表单验证(推荐)
Nov 17 Javascript
Bootstrap 表单验证formValidation 实现远程验证功能
May 17 Javascript
BACKBONE.JS 简单入门范例
Oct 17 Javascript
如何用webpack4.0撸单页/多页脚手架 (jquery, react, vue, typescript)
Jun 18 jQuery
vue使用一些外部插件及样式的配置代码
Nov 18 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/12/06 PHP
整理的9个实用的PHP库简介和下载
2010/11/09 PHP
PHP访问MYSQL数据库封装类(附函数说明)
2010/12/04 PHP
php将fileterms函数返回的结果变成可读的形式
2011/04/21 PHP
PHP实例分享判断客户端是否使用代理服务器及其匿名级别
2014/06/04 PHP
PHP7 mongoDB扩展使用的方法分享
2019/05/02 PHP
不用AJAX和IFRAME,说说真正意义上的ASP+JS无刷新技术
2008/09/25 Javascript
JQuery以JSON方式提交数据到服务端示例代码
2014/05/05 Javascript
JS生成随机字符串的多种方法
2014/06/10 Javascript
JS基于VML技术实现的五角星礼花效果代码
2015/10/26 Javascript
JavaScript隐式类型转换
2016/03/15 Javascript
Bootstrap基本模板的使用和理解1
2016/12/14 Javascript
微信小程序 form组件详解及简单实例
2017/01/10 Javascript
js实现弹窗暗层效果
2017/01/16 Javascript
JavaScript登录记住密码操作(超简单代码)
2017/03/22 Javascript
node.js 抓取代理ip实例代码
2017/04/30 Javascript
angular2中router路由跳转navigate的使用与刷新页面问题详解
2017/05/07 Javascript
基于mpvue的小程序项目搭建的步骤
2018/05/22 Javascript
layui2.0使用table+laypage实现真分页
2019/07/27 Javascript
[01:04:01]2014 DOTA2华西杯精英邀请赛5 24 DK VS VG
2014/05/25 DOTA
python实现微信发送邮件关闭电脑功能
2018/02/22 Python
解决Pycharm中import时无法识别自己写的程序方法
2018/05/18 Python
Python 微信之获取好友昵称并制作wordcloud的实例
2019/02/21 Python
Python字典推导式将cookie字符串转化为字典解析
2019/08/10 Python
Python 等分切分数据及规则命名的实例代码
2019/08/16 Python
解决Django migrate不能发现app.models的表问题
2019/08/31 Python
python将三维数组展开成二维数组的实现
2019/11/30 Python
Python matplotlib实时画图案例
2020/04/23 Python
Python预测2020高考分数和录取情况
2020/07/08 Python
HTML5 body设置自适应全屏
2020/05/07 HTML / CSS
EJB的激活机制
2013/10/25 面试题
你的创业计划书怎样才能打动风投
2014/02/06 职场文书
旅游专业毕业生自荐书
2014/06/30 职场文书
新员工辞职信范文
2015/05/12 职场文书
2015年乡镇平安建设工作总结
2015/05/13 职场文书
面试官问我Mysql的存储引擎了解多少
2022/08/05 MySQL