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 相关文章推荐
(仅IE下有效)关于checkbox 三态
May 12 Javascript
jQuery学习笔记 获取jQuery对象
Sep 19 Javascript
jquery实现excel导出的方法
Apr 04 Javascript
ExtJS4给Combobox设置列表中的默认值示例
May 02 Javascript
jQuery实现漂亮实用的商品图片tips提示框效果(无图片箭头+阴影)
Apr 16 Javascript
深入剖析JavaScript中的函数currying柯里化
Apr 29 Javascript
JS实现自动阅读单词(有道单词本添加功能)
Nov 14 Javascript
微信小程序使用input组件实现密码框功能【附源码下载】
Dec 11 Javascript
react-navigation之动态修改title的内容
Sep 26 Javascript
js原生map实现的方法总结
Jan 19 Javascript
Vue 的双向绑定原理与用法揭秘
May 06 Javascript
详解JavaScript之Array.reduce源码解读
Nov 01 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/11/16 PHP
PHP字符串的编码问题的详细介绍
2013/04/27 PHP
php无限极分类递归排序实现方法
2014/11/11 PHP
PHP图片处理之使用imagecopy函数添加图片水印实例
2014/11/19 PHP
PHP is_array() 检测变量是否是数组的实现方法
2016/06/13 PHP
用JS剩余字数计算的代码
2008/07/03 Javascript
基于Jquery实现表格动态分页实现代码
2011/06/21 Javascript
JavaScript高级程序设计(第3版)学习笔记7 js函数(上)
2012/10/11 Javascript
Js判断参数(String,Array,Object)是否为undefined或者值为空
2013/11/04 Javascript
jquery trigger伪造a标签的click事件取代window.open方法
2014/06/23 Javascript
Node.js 的异步 IO 性能探讨
2014/10/08 Javascript
JavaScript基本语法讲解
2015/06/03 Javascript
KnockoutJS 3.X API 第四章之click绑定
2016/10/10 Javascript
原生js实现无限循环轮播图效果
2017/01/20 Javascript
详解Vue 动态添加模板的几种方法
2017/04/25 Javascript
微信小程序 转发功能的实现
2017/08/04 Javascript
vue插件开发之使用pdf.js实现手机端在线预览pdf文档的方法
2018/07/12 Javascript
详解webpack import()动态加载模块踩坑
2018/07/17 Javascript
axios的拦截请求与响应方法
2018/08/11 Javascript
使用Jenkins部署React项目的方法步骤
2019/03/11 Javascript
详解element-ui中el-select的默认选择项问题
2019/08/02 Javascript
layui select 禁止点击的实现方法
2019/09/05 Javascript
JavaScript事件委托实现原理及优点进行
2020/08/29 Javascript
React Ant Design树形表格的复杂增删改操作
2020/11/02 Javascript
Python Sleep休眠函数使用简单实例
2015/02/02 Python
Python类方法__init__和__del__构造、析构过程分析
2015/03/06 Python
全面解析Python的While循环语句的使用方法
2015/10/13 Python
Python求算数平方根和约数的方法汇总
2016/03/09 Python
《小白兔和小灰兔》教学反思
2014/02/18 职场文书
《画家乡》教学反思
2014/04/22 职场文书
党的群众路线对照检查材料
2014/09/22 职场文书
车辆年检委托书范本
2014/10/14 职场文书
2014年手术室工作总结
2014/11/26 职场文书
投资申请报告
2015/05/19 职场文书
防卫过当辩护词
2015/05/21 职场文书
2015年妇委会工作总结
2015/05/22 职场文书