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 相关文章推荐
javascript打印大全(打印页面设置/打印预览代码)
Mar 29 Javascript
一款基于jQuery的图片场景标注提示弹窗特效
Jan 05 Javascript
深入解析JavaScript框架Backbone.js中的事件机制
Feb 14 Javascript
html判断当前页面是否在iframe中的实例
Nov 30 Javascript
微信小程序选择图片和放大预览图片功能
Nov 02 Javascript
JS判断两个数组或对象是否相同的方法示例
Feb 28 Javascript
微信小程序自定义tabbar custom-tab-bar 6s出不来解决方案(cover-view不兼容)
Nov 01 Javascript
js实现的在本地预览图片功能示例
Nov 09 Javascript
基于Web Audio API实现音频可视化效果
Jun 12 Javascript
Nuxt.js nuxt-link与router-link的区别说明
Nov 06 Javascript
JS创建或填充任意长度数组的小技巧汇总
Oct 24 Javascript
前端监听websocket消息并实时弹出(实例代码)
Nov 27 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
openflashchart 2.0 简单案例php版
2012/05/21 PHP
Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
2017/03/02 PHP
详解Yii2高级版引入bootstrap.js的一个办法
2017/03/21 PHP
Laravel学习教程之View模块详解
2017/09/18 PHP
在laravel中实现ORM模型使用第二个数据库设置
2019/10/24 PHP
php和js实现根据子网掩码和ip计算子网功能示例
2019/11/09 PHP
php使用fputcsv实现大数据的导出操作详解
2020/02/27 PHP
js Form.elements[i]的使用实例
2011/11/13 Javascript
一个简单的Ext.XTemplate的实例代码
2012/03/18 Javascript
JS模拟自动点击的简单实例
2013/08/08 Javascript
JQuery插件开发示例代码
2013/11/06 Javascript
JavaScript里实用的原生API汇总
2015/05/14 Javascript
js计算系统当前日期是星期几的方法
2016/07/14 Javascript
相册展示PhotoSwipe.js插件实现
2016/08/25 Javascript
Node.js websocket使用socket.io库实现实时聊天室
2017/02/20 Javascript
微信小程序中button组件的边框设置的实例详解
2017/09/27 Javascript
Vue2.0 给Tab标签页和页面切换过渡添加样式的方法
2018/03/13 Javascript
详解vue-cli 本地开发mock数据使用方法
2018/05/29 Javascript
图片文字识别(OCR)插件Ocrad.js教程
2018/11/26 Javascript
vue form check 表单验证的实现代码
2018/12/09 Javascript
JS实现的自定义map方法示例
2019/05/17 Javascript
echarts 使用formatter 修改鼠标悬浮事件信息操作
2020/07/20 Javascript
彻底搞懂并解决vue-cli4中图片显示的问题实现
2020/08/31 Javascript
[27:39]Ti4 循环赛第二日 LGD vs Fnatic
2014/07/11 DOTA
Python的lambda匿名函数的简单介绍
2013/04/25 Python
python中闭包Closure函数作为返回值的方法示例
2017/12/17 Python
Flask框架工厂函数用法实例分析
2019/05/25 Python
python列表推导式入门学习解析
2019/12/02 Python
雅诗兰黛(Estee Lauder)英国官方网站:世界顶级化妆品牌
2016/12/29 全球购物
士力架广告词
2014/03/20 职场文书
党支部四风整改方案
2014/10/25 职场文书
秦兵马俑导游词
2015/02/02 职场文书
行政主管岗位职责范本
2015/04/09 职场文书
小学教师暑期培训心得体会
2016/01/09 职场文书
总结python多进程multiprocessing的相关知识
2021/06/29 Python