Las funciones para codificar y descodificar un URL implementadas en Javascript
Código fuente que implementa las funciones URLENCODE y URLDECODE. Estas funciones son originarias de PHP pero en ocasiones es necesario implemntarlas en algún otro lenguaje. Aquí están en Javascript. Desde este código es relativamente fácil pasarlo a otro lenguaje como Visual Basic o ASP.
function URLEnc( ) { var nocodificar = "0123456789"+"ABCDEFGHIJKLMNOPQRSTUVWXYZ"+"abcdefghijklmnopqrstuvwxyz" +"-_.!~*'()"; var HEX = "0123456789ABCDEF"; var textoAcodificar = document.Form1.encode.value; var codificado = ""; for (var i = 0; i < textoAcodificar.length; i++ ) { var ch = textoAcodificar.charAt(i); if (ch == " ") { codificado += "+"; } else if (nocodificar.indexOf(ch) != -1) { codificado += ch; } else { var charCode = ch.charCodeAt(0); if (charCode > 255) { alert( "Caracter Unicode '"+ch+"' no puede ser codificado utilizando la codificación URL estandar.\n" + "(sólo soporta caracteres de 8-bit.)\n" + "Será sustituido por un símbolo de suma (+)." ); codificado += "+"; } else { codificado += "%"; codificado += HEX.charAt((charCode >> 4) & 0xF); codificado += HEX.charAt(charCode & 0xF); } } } document.Form1.decode.value = codificado; return false; }; |
function URLDec( ){ var HEXCHARS = "0123456789ABCDEFabcdef"; var codificado = document.Form1.decode.value; var textoAcodificar = ""; var i = 0; while (i < codificado.length) { var ch = codificado.charAt(i); if (ch == "+") { textoAcodificar += " "; i++; } else if (ch == "%") { if (i < (codificado.length-2) && HEXCHARS.indexOf(codificado.charAt(i+1)) != -1 && HEXCHARS.indexOf(codificado.charAt(i+2)) != -1 ) { textoAcodificar += unescape( codificado.substr(i,3) ); i += 3; } else { alert( 'Bad escape combination near ...' + codificado.substr(i) ); textoAcodificar += "%[ERROR]"; i++; } } else { textoAcodificar += ch; i++; } } document.Form1.encode.value = textoAcodificar; return false; }; |
En otro artículo encontrarás estas mismas funciones pero implementadas en Visual Basic. Búscalas!
|