01 septiembre 2007

Javascript: codificación hexadecimal de caracteres

Si vamos a enviar con Javascript (mediante GET o POST) parámetros de un formulario que contienen tildes, eñes o caracteres raros, podemos utilizar la función escape(cadena) para generar una cadena válida y unescape(cadena) para invertir el proceso.

La función escape retorna la codificación hexadecimal del argumento en el conjunto de caracteres Latinos ISO. La función unescape retorna la cadena ASCII para el especificado valor hexadecimal decodificado.

Ejemplos:

document.write(escape("¡Qué hermoso niño!"));
Salida: %A1Qu%E9%20hermoso%20ni%F1o%21

document.write(unescape("%A1Qu%E9%20hermoso%20ni%F1o%21"));
Salida: ¡Qué hermoso niño!


 

Existen otras funciones similares como:

  • encodeURI(cadena) / decodeURI(cadena)
  • encodeURIComponent(cadena) / decodeURIComponent(cadena),
  • encodeURL(cadena) / decodeURL(cadena)
  • encodeURLComponent(cadena) / decodeURLComponent(cadena)

Más info y codificador on-line (inglés):
http://www.barelyfitz.com/projects/encoder/

Nota: Estas funciones pueden ser útiles para el envío automático de formularios web a una dirección de correo electrónico, cuando en el email no se visualizan correctamente los caracteres (por ejemplo para usar cuando enviamos parámetros al famoso script formmail).

1 comentario:

lujuria dijo...

Me ha venido perfecto, para un problemilla que tenía.

Gracias!