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 相关文章推荐
从零学jquery之如何使用回调函数
May 16 Javascript
jquery实现的省市区三级联动
Apr 02 Javascript
jQuery实现在列表的首行添加数据
May 19 Javascript
JS实现网页标题栏显示当前时间和日期的完整代码
Nov 02 Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
Oct 08 Javascript
微信小程序 两种滑动方式(横向滑动,竖向滑动)详细及实例代码
Jan 13 Javascript
vue-router的HTML5 History 模式设置
Sep 08 Javascript
Next.js实现react服务器端渲染的方法示例
Jan 06 Javascript
微信小程序如何实现五星评价功能
Oct 15 Javascript
vue路由传参三种基本方式详解
Dec 09 Javascript
vue下canvas裁剪图片实例讲解
Apr 16 Javascript
Ant design vue table 单击行选中 勾选checkbox教程
Oct 24 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
深入array multisort排序原理的详解
2013/06/18 PHP
Yii结合CKEditor实现图片上传功能
2014/06/13 PHP
laravel 验证错误信息到 blade模板的方法
2019/09/29 PHP
jquery向.ashx文件post中文乱码问题的解决方法
2011/03/28 Javascript
JS将光标聚焦在文本最后的实现代码
2014/03/28 Javascript
PHP 数组current和next用法分享
2015/03/05 Javascript
JavaScript学习笔记--常用的互动方法
2016/12/07 Javascript
基于JavaScript实现本地图片预览
2017/02/08 Javascript
ES6中class类用法实例浅析
2017/04/06 Javascript
jquery插件canvaspercent.js实现百分比圆饼效果
2017/07/18 jQuery
浅谈AngularJS中$http服务的简单用法
2018/05/15 Javascript
详解JavaScript原生封装ajax请求和Jquery中的ajax请求
2019/02/14 jQuery
详解TypeScript+Vue 插件 vue-class-component的使用总结
2019/02/18 Javascript
学习LayUI时自研的表单参数校验框架案例分析
2019/07/29 Javascript
layui在form表单页面通过Validform加入简单验证的方法
2019/09/06 Javascript
vue 父组件通过v-model接收子组件的值的代码
2019/10/27 Javascript
javascript设计模式 ? 模板方法模式原理与用法实例分析
2020/04/23 Javascript
[57:09]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第一场 1月26日
2021/03/11 DOTA
Python入门必须知道的11个知识点
2018/03/21 Python
django反向解析URL和URL命名空间的方法
2018/06/05 Python
解析Python的缩进规则的使用
2019/01/16 Python
python opencv判断图像是否为空的实例
2019/01/26 Python
Python子类继承父类构造函数详解
2019/02/19 Python
python对矩阵进行转置的2种处理方法
2019/07/17 Python
Python中xml和dict格式转换的示例代码
2019/11/07 Python
python ftplib模块使用代码实例
2019/12/31 Python
python中通过pip安装库文件时出现“EnvironmentError: [WinError 5] 拒绝访问”的问题及解决方案
2020/08/11 Python
Pycharm新手使用教程(图文详解)
2020/09/17 Python
一款恶搞头像特效的制作过程 利用css3和jquery
2014/11/21 HTML / CSS
英国在线珠宝店:The Jewel Hut
2017/03/20 全球购物
造型师求职自荐信
2013/09/27 职场文书
体育教师求职信
2014/06/30 职场文书
关于随地扔垃圾的检讨书
2014/09/30 职场文书
幼儿园小朋友毕业感言
2015/07/30 职场文书
mysql连接查询中and与where的区别浅析
2021/07/01 MySQL
实现一个简单得数据响应系统
2021/11/11 Javascript