[JS]unescape函数用法 地址编码用法实例
今天在用上面的方法获取url中的参数时,url中传递的中文参数在解析的时候无 论怎么测试,获取的都是乱码。经过一番调试后发现,我再传递参数时,对汉字编码使用的是 encodeURI ,而上面的方法在解析参数编码时使用的是unescape ,修改为 decodeURI 就可以了。
附: W3School中的介绍:
JavaScript unescape() 函数
定义和用法
unescape() 函数可对通过 escape() 编码的字符串进行解码。
参数 | 描述 |
---|---|
string | 必需。要解码或反转义的字符串。 |
说明
该函数的工作原理是这样的:通过找到形式为 %xx 和 %uxxxx 的字符序列(x 表示十六进制的数字),用 Unicode 字符 \u00xx 和 \uxxxx 替换这样的字符序列进行解码。
提示和注释
注释:ECMAScript v3 已从标准中删除了 unescape() 函数,并反对使用它,因此应该用 decodeURI() 和 decodeURIComponent() 取而代之。
综上: javascript对参数编码解码方法要一致:
escape() unescape()
encodeURI() decodeURI()
encodeURIComponent() decodeURIComponent()
网上找的另一种javascript获取url中参数的方法:
unescape函数,encodeURI函数
- <script language="JavaScript" type="text/javascript">
- function GetUrlParms()
- {
- var args=new Object();
- var query=location.search.substring(1);//获取查询串
- var pairs=query.split("&");//CuPlayer.com提示:在逗号处断开
- for(var i=0;i<pairs.length;i++)
- {
- var pos=pairs[i].indexOf('=');//查找name=value
- if(pos==-1) continue;//如果没有找到就跳过
- var argname=pairs[i].substring(0,pos);//提取name
- var value=pairs[i].substring(pos+1);//提取value
- args[argname]=unescape(value);//存为属性
- }
- return args;
- }
- var args = new Object();
- args = GetUrlParms();
- //CuPlayer.com提示:如果要查找参数key:
- if(args["id"]!=undefined)
- {
- //CuPlayer.com提示:如果要查找参数key:
- var value1 = args["id"] ;
- alert(value1);
- }</script>
热门文章推荐
- [JS]window.location获取url各项参数详解
- [JS]jQuery,javascript获得网页的高度和宽度
- [JS]视频弹窗视频弹出层videoLightBox(含三种播放器的用法)
- [JS]JS提交中文encodeURI两次转码
- [JS]js版方面encodeURI转码和decodeURI解码的用法实例
- [JS]js取当前机子的时间戳实例
- [JS]AES加密(基于crypto-js)PHP后端解密
- [JS]data:image/png;base64写法的用途及说明