function URLEncode(txt) { 
     var SAFECHARS = "0123456789" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + 
     "abcdefghijklmnopqrstuvwxyz" + "-_.!~*'()"; 
    var HEX = "0123456789ABCDEF"; 
    var plaintext = txt; 
    var encoded = ""; 
    
    for (var i = 0; i < plaintext.length; i++ ) { 
     var ch = plaintext.charAt(i);
     if (ch == " ") { 
      encoded += "+";
     } else if (SAFECHARS.indexOf(ch) != -1) {
      encoded += ch; 
     } else { 
      var charCode = ch.charCodeAt(0);
     
      if (charCode > 255) {
      alert( "Unicode Character '" + ch +
       "' cannot be encoded using standard URL encoding.\n" +
       "(URL encoding only supports 8-bit characters.)\n");          encoded += "+"; 
       }else{ 
       encoded += "%"; encoded += HEX.charAt((charCode >> 4) & 0xF);
       encoded += HEX.charAt(charCode & 0xF); 
        }
       } 
    } // for
    return encoded; }
    function URLDecode(txt) { 
    
    var HEXCHARS = "0123456789ABCDEFabcdef";
    var encoded = txt; 
    var plaintext = ""; 
    var i = 0;
    while (i < encoded.length) {
     var ch = encoded.charAt(i);
     if (ch == "+") { 
      plaintext +=" "; i++; 
     } else if (ch == "%") {
      if (i < (encoded.length-2) && HEXCHARS.indexOf(encoded.charAt(i+1)) != -1 && HEXCHARS.indexOf(encoded.charAt(i+2)) != -1 ) { 
      plaintext+= unescape( encoded.substr(i,3) );
      i += 3; } else {
         alert( 'Bad escape combination near ...' + encoded.substr(i) ); plaintext += "%[ERROR]"; i++; } 
       }
       else { plaintext += ch; i++; }
    } // while
     plaintext; };
Nenhum comentário:
Postar um comentário