HTML获取链接中的参数(解决中文乱码问题)

这是之前在网上找的一个HTML页面获取链接后面的参数的例子,本人觉得写的很好,一直在用,下面粘贴上js源码:

var LocString=String(window.document.location.href);
 function GetQueryString(str){
 var rs=new RegExp("(^|)"+str+"=([^&]*)(&|$)","gi").exec(LocString),tmp;
 if(tmp=rs)return tmp[2];
 return "没有这个参数";
 }
 alert("日记名称:"+GetQueryString("name"));
 alert("分类编号:"+GetQueryString("hehe"));
 alert("所在页数:"+GetQueryString("hh"));

相信大家一看就懂了,但是这里面还涉及到一个问题就是如果链接中存在中文的话,会自动被转码。
取中文参数需要解码,比如上面的日记名称如果是中文的话:

var name= decodeURI(GetQueryString("name"));
alert("日记名称:"+name);

这样alert的值才是中文的。顺便普及两个知识点,上面说的链接中的中文会被自动编码。其实我们也可以自己手动进行编码,防止在中文数据在传输变乱码。
这里就涉及到java和js的两种转码方式,其实用的方法都是一样的。
Java方法:

java.net.URLDecoder.decode(URIString, "UTF-8");  //按照utf-8进行解码
java.net.URLEncoder.encode(URIString, "UTF-8");  //按照utf-8进行编码

js方法

decodeURI()  //解码
encodeURI()  //编码

这里encodeURI()方法的结果和链接里面自动编码的结果是一样的。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值