纯JS URL编解码

 1 function urlEncode(str)
 2 {
 3     var ret = "";
 4     var strSpecial = "!\"#$%&’()*+,/:;<=>?[]^`{|}~%";
 5     var tt = "";
 6     for(var i = 0; i < str.length; i++)
 7     {
 8         var chr = str.charAt(i);
 9         var c = str2asc(chr);
10         tt += chr + ":" + c + "n";
11         if (parseInt("0x" + c) > 0x7f)
12         {
13             ret += "%" + c.slice(0,2) + "%" + c.slice(-2);
14         }
15         else
16         {
17             if (chr == " ")
18                 ret += "+";
19             else if (strSpecial.indexOf(chr) != -1)
20                 ret += "%" + c.toString(16);
21             else
22                 ret += chr;
23         }
24     }
25    
26     return ret;
27 }
28  
29 function urlDecode(str)
30 {
31     var ret = "";
32     for (var i = 0; i < str.length; i++)
33     {
34         var chr = str.charAt(i);
35         if (chr == "+")
36         {
37             ret += " ";
38         }
39         else if (chr == "%")
40         {
41             var asc = str.substring(i+1, i+3);
42             if (parseInt("0x"+asc) > 0x7f)
43             {
44                 ret += asc2str(parseInt("0x" + asc+str.substring(i+4, i+6)));
45                 i += 5;
46             }
47             else
48             {
49                 ret += asc2str(parseInt("0x"+asc));
50                 i += 2;
51             }
52         }
53         else
54         {
55             ret += chr;
56         }
57     }
58    
59     return ret;
60 }

 

posted @ 2014-07-30 11:42  袖舞清风  Views(261)  Comments(0)    收藏  举报