js URLdecode()与urlencode方法支持中文解码
来源:自学PHP网
时间:2014-09-19 14:47 作者:
阅读:次
[导读] 下面来介绍在js中来利用urlencode对中文编码与接受到数据后利用URLdecode()对编码进行解码,有需要学习的机友可参考参考。...
代码如下 |
复制代码 |
<script language="vbscript">
Function str2asc(strstr)
str2asc = hex(asc(strstr))
End Function
Function asc2str(ascasc)
asc2str = chr(ascasc)
End Function
</script>
<script language="javascript" type="text/javascript">
function UrlEncode(str){
var ret="";
var strSpecial="!"#$%&'()*+,/:;<=>?[]^`{|}~%";
for(var i=0;i<str.length;i++){
var chr = str.charAt(i);
var c=str2asc(chr);
if(parseInt("0x"+c) > 0x7f){
ret+="%"+c.slice(0,2)+"%"+c.slice(-2);
}else{
if(chr==" ")
ret+="+";
else if(strSpecial.indexOf(chr)!=-1)
ret+="%"+c.toString(16);
else
ret+=chr;
}
}
return ret;
}
</script>
|
用这样的办法调用:
代码如下 |
复制代码 |
<script language="javascript" type="text/javascript">
alert(UrlEncode("孙毓波大好人"));
</script>
|
解码办法
代码如下 |
复制代码 |
function UrlDecode(zipStr){
var uzipStr="";
for(var i=0;i<zipStr.length;i++){
var chr = zipStr.charAt(i);
if(chr == "+"){
uzipStr+=" ";
}else if(chr=="%"){
var asc = zipStr.substring(i+1,i+3);
if(parseInt("0x"+asc)>0x7f){
uzipStr+=decodeURI("%"+asc.toString()+zipStr.substring(i+3,i+9).toString());
i+=8;
}else{
uzipStr+=AsciiToString(parseInt("0x"+asc));
i+=2;
}
}else{
uzipStr+= chr;
}
}
return uzipStr;
}
function StringToAscii(str){
return str.charCodeAt(0).toString(16);
}
function AsciiToString(asccode){
return String.fromCharCode(asccode);
}
|
用法
使用方法
代码如下 |
复制代码 |
var str = '%e7%90%bc%e5%8f%b0%e5%8d%9a%e5%ae%a2';
var destr = UrlDecode(str);
alert(destr);
|
|