La codificación de caracteres en la Web

Vamos a comenzar este blog con algo muy sencillo pero muy importante en la programación para la web, tanto para sitios como para sistemas, el charset encoding o codificación de caracteres.
La codificación de caracteres es el método que permite convertir un carácter de un lenguaje natural (alfabeto o silabario) en un símbolo de otro sistema de representación, como un número o una secuencia de pulsos eléctricos en un sistema electrónico, aplicando normas o reglas de codificación. (Wikipedia)

Codificación de caracteres en los archivos de tu proyecto

Es vital que tengas en cuenta a la hora de crear tu proyecto; ya sea usando un IDE, con un editor de textos visual o con el editor de la consola; que todos los archivos que vayas a crear tengan el mismo charset encoding, si te cuesta trabajo decidir cual usar, usa UTF-8, sobre todo si lo que estás haciendo tiene palabras en idioma español esto te ayudará a evitar el molesto uso de funciones para convertir tus cadenas de caracteres para que las letras con tilde, las eñes y otros se vean correctamente.

Cuando digo todos los archivos digo todos realmente: .html, .css, .js, .php, .txt

¿Cómo garantizar esto? La mayoría de los IDEs modernos, NetBeans por ejemplo, definen la codificación entre las propiedades del proyecto. Los editores de texto como el propio Notepad de Windows o en Notepad++ tienen capacidad para convertir la codificación de caracteres de un archivo. En la consola de Linux puede hacer uso del comando iconv para cambiar el chartset de un archivo(también se puede hacer en Windows a nivel de consola si se instala la aplicación).

En las páginas Web

En nuestras páginas, además de la codificación del archivo (.html, .htm, .php, etc) debemos declarar de forma explícita en la sección del "head" la codificación de caracteres a usar mediante un tag META.

En XTHML 1.1 lo habitual es hacerlo de la siguente manera:

<meta http-equiv="content-type" content="text/html;charset=UTF-8" />

Pero en HTML5 basta con:

<meta charset="utf-8" />

En las bases de datos

Son pocas las aplicaciones web de hoy en día que no hacen uso de una base de datos. Hablar del charset encoding en las bases de datos llevaría más de un post para poder tratar el tema con profundidas, así que solo te daré un par de consejos válidos para cualquier gestor.
  1. Verifica que tu base de datos, tus tablas y tus campos de texto usen el mismo charset que tu aplicación web, si es UTF-8 mejor aún.
  2. Cuidado al insertar datos directamente en la base de datos haciendo uso de un cliente, es muy común por ejemplo que al hacer uso del EMS Manager para MySQL (herramienta muy útil, pero no gratuita) el cliente haga uso de la codificación del sistema operativo o que al acceder a la consola de un servidor vía SSH haciendo uso de un cliente como el Putty la codificación por defecto sea ISO-8859-1, si no cambiamos en la configuración de nuestro cliente a la codificación de caracteres que estamos usando en nuestro proyecto e insertamos los datos en estas condiciones, corremos el riesgo de insertar datos con caracteres extraños que serán dificíles de descifrar por nuestra aplicación web.

Resumiendo

Usa el mismo charset encoding en todos los elementos del proyecto. No dejes que IDE, el cliente de bases de datos o el editor de texto pongan la codificación que tienen por defecto a tus archivos y bases de datos, configuralos correctamente. Si a mitad del proyecto de das cuenta que se te olvidó configurar correctamente el charset en alguno de los elementos, aún estás a tiempo, modificalo, puede ser que te tome algunos minutos, no es tiempo perdido.

Suerte

Comentarios

Entradas populares de este blog

Importar y exportar datos en Postgres y MySQL

Verificando la carga del servidor