escape函数解决js中ajax传递中文出现乱码问题
本文实例讲述了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()式的编解码
functionget(id){returndocument.getelementbyid(id).value}
functionsetting()
{
varxmlhttp;
if(window.activexobject)
{
xmlhttp=newactivexobject("microsoft.xmlhttp")
}else{
xmlhttp=newxmlhttprequest();
}
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readystate==4)
{
if(xmlhttp.status==200)
{
alert("成功!")
}else{
alert(xmlhttp.status)
}
}
}
varurl="action.asp教程?action=setting&rnd="+math.random()
xmlhttp.open("post",url,true)
varsenddate="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"));
2727xmlhttp.setrequestheader("content-type","application/x-www-form-urlencoded");
xmlhttp.send(senddate)
}
</script>
上面的实例我们中文只用了escape函数,语法如下:
定义和用法:
escape()函数可对字符串进行编码,这样就可以在所有的计算机上读取该字符串。
语法:
escape(string)参数描述
string必需。要被转义或编码的字符串。
返回值:
已编码的string的副本。其中某些字符被替换成了十六进制的转义序列。
说明:
该方法不会对ascii字母和数字进行编码,也不会对下面这些ascii标点符号进行编码:-_.!~*"()。其他所有的字符都会被转义序列替换。
提示和注释:
提示:可以使用unescape()对escape()编码的字符串进行解码。
注释:ecmascriptv3反对使用该方法,应用使用decodeuri()和decodeuricomponent()替代它
希望本文所述对大家的javascript程序设计有所帮助。
相关文章
- js书写原生ajax,JS 原生ajax写法
- js Date 使用详解[通俗易懂]
- php unicode编码_js unicode转中文
- 【说站】js基本数据类型有什么特点
- 【说站】js中co模块的介绍
- Vue.js – 引入外部 JS 文件
- JS浅拷贝
- js 数组去除重复数据-5 个提升你 JS 编码水平的实例
- 个人笔记(js+css篇一)
- 春节代码 新年快乐html 灯笼js
- js ajax 设置代理ip(vue Ajax 设置 代理ip)
- get两个js小技能——JS截取视频第一帧&图片转Base64
- js+css3的炫酷幻灯片效果详解编程语言
- JS、JQ实现焦点图轮播效果详解编程语言
- js数据类型详解编程语言
- jQuery ready和JS onload事件的区别
- 使用JS连接MySQL数据库:实现化繁为简(js连接mysql数据库)
- Linux上的JS压缩工具(js压缩工具linux)
- 快速掌握JS操作MySQL数据库技巧(js操作mysql数据库)
- 使用JS在网页中连接Oracle数据库(js网页链接oracle)
- 使用JS操作Oracle数据库探索潜在可能性(js和oracle数据库)
- JavaScript探索之旅掌握Oracle和JS的完美融合(js与oracle)
- 通过身份证号得到出生日期和性别的js代码
- js学习笔记(三)
- js对象之JS入门之Array对象操作小结
- js延迟加载改变JS的位置加快网页加载速度
- 中文字符串截取的js函数代码
- JS操作图片(增,删,改)例子
- 浏览器页面区域大小的js获取方法
- js获取当月最后一天实例代码
- JS简单实现登陆验证附效果图
- js传中文参数controller里获取参数乱码问题解决方法
- JS判断两个时间大小的示例代码