关闭

JS UrlEncode UrlDecode

162人阅读 评论(0) 收藏 举报
function str2asc(strstr){
	return ("0"+strstr.charCodeAt(0).toString(16)).slice(-2);
}
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);
		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 asc2str(ascasc){
	return String.fromCharCode(ascasc);
}
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)));
				i+=5;
			}else{
				ret+=asc2str(parseInt("0x"+asc));
				i+=2;
			}
		}else{
			ret+= chr;
		}
	}
	return ret;
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2331次
    • 积分:87
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:3篇
    • 译文:0篇
    • 评论:0条
    文章分类