
| 标签:JAVASCRIPT PHP | 分类:JAVASCRIPT |
今天想做个表单,通过Jquery提交并转到另个页面,如果得到的值直接放在URL中传递,中文就会出现乱码,而Javascript中又没有与像PHP中urlencode的函数,后面在网上找到个互转的自定义函数,遗憾的是其中用到了VBSCRIPT,在火狐下没有用~怀具
函数为:
function URLencode(str) {
var ret = "";
var strSpecial = "!\"#$%&'()*+,/:;<=>?[]^`{|}~%";
var tt= "";
for(var i=0;i<str.length;i++) {
var chr = str.charAt(i);
var c = str2asc(chr);//这里用到了VBscript
tt += chr+":"+c+"n";
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;
}
function URLdecode(str) {
var ret = "";
for(var i=0;i<str.length;i++) {
var chr = str.charAt(i);
if(chr == "+") {
ret += " ";
}else if(chr=="%") {
var asc = str.substring(i+1,i+3);
if(parseInt("0x"+asc)>0x7f) {
ret += asc2str(parseInt("0x"+asc+str.substring(i+4,i+6)));//这里用到了VBscript
i += 5;
}else {
ret += asc2str(parseInt("0x"+asc));//这里用到了VBscript
i += 2;
}
}else {
ret+= chr;
}
}
return ret;
}
<script language="vbscript">
Function str2asc(strstr)
str2asc = hex(asc(strstr))
End Function
Function asc2str(ascasc)
asc2str = chr(ascasc)
End Function
</script>