Codificar y descodificar cadenas a UTF-8 con Javascript

  • Por
Funciones Javascript para pasar a UTF-8 un texto y para realizar el paso inverso, es decir, desde UTF-8 decodificar al juego de caracteres ISO-8859-1.
En este artículo vamos a mostrar otras de las funciones Javascript que nos ofrecen desde las librerías php.js, en este caso para trabajar con el juego de caracteres UTF-8 desde páginas codificadas como ISO-8859-1 y viceversa.

Son unas funciones análogas a las existentes en PHP para codificar y descodificar cadenas a UTF-8, pero en sus versiones Javascript, para la programación del lado del cliente.

Nosotros no hemos hecho estas funciones, sino que tal como comentábamos, están presentes en las librerías php.js, un proyecto para portar las funciones de PHP al lenguaje Javascript, que contiene muchas joyitas como éstas, en las que podemos utilizar algunas de las funciones que ya existen en PHP, a las que quizás estemos acostumbrados a recurrir habitualmente en nuestras aplicaciones web.

Nota: Para acceder al código de estas funciones tenemos que dirigirnos al sitio web de php.JS y acceder a las páginas de cada una de ellas. Podemos también hacer la descarga de un paquete con el código Javascript de las dos, así como cualquier otra función que pueda interesarnos. Todo esto ya se comentaba en el artículo de presentación de PHP.JS.

Las dos funciones que os presentamos en este caso son bien simples, ya que simplemente reciben una cadena y devuelven otra, que nos sirven para hacer dos operaciones:

Función utf8_encode() de Javascript

Sirve para codificar una cadena de caracteres que tenemos en ISO-8859-1 en otro string con codificación UTF-8. Recibe como parámetro la cadena ISO-8859-1 y devuelve la cadena UTF-8.

Se puede ver un ejemplo de uso a continuación:

var texto = "Tomaré una decisión con la cigüeña.";
var textoUtf8 = utf8_encode(texto);

Como resultado de ejecutar estas dos sentencias, en la variable textoUtf8 tendremos una cadena como esta:

Tomaré una decisión con la cigüeña.

Función utf8_decode() de Javascript

Sirve para codificar una cadena de caracteres que tenemos en UTF-8 en otro string con codificación ISO-8859-1. Recibe como parámetro la cadena UTF-8 y devuelve la cadena que tiene el juego de caracteres ISO-8859-1.

var texto = "Tomaré una decisión con la cigüeña.";
var textoISO = utf8_encode(texto);

Como resultado de ejecutar esas instrucciones, el contenido de la variable textoISO volverá a ser la cadena inicial "Tomaré una decisión con la cigüeña.".

Conclusión

Como vemos, son funciones bastante simples, pero que podrán sacarnos de algún apuro cuando estamos lidiando con juegos de caracteres desde Javascript y queremos pasar las cadedas entre los habituales ISO-8859-1 y UTF-8.

A modo de referencia, os comento que estas funciones para pasar entre juegos de caracteres fueron publicadas originalmente en WebToolkit.info, aunque os recomiendo descargarlas directamente de las librerías php.js, pues varios contribuidores las han mejorado y han reparado algunos errores que se han detectado.

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir

Comentarios

Claudio

26/10/2014
gracias!!!
gracias, creo que pusiste encode en las 2 funciones.

JOSE

12/11/2014
Con mayúsculas no funciona.
He probado con la vocales mayúsculas con tilde y no funciona.

Ricardo

01/4/2016
No funciona en function
Al usar la función encode_utf8 en una función esta se truena y ya no hace nada... ¿cúal es esl problema?

Braffy

06/5/2017
funciones
las funciones las puedes encontrar en http://www.webtoolkit.info/ son de Kevin van Zonneveld (http://kevin.vanzonneveld.net)