El elemento meta con atributo charset en un documento HTML está el destinado a indicar la codificación de caracteres utilizada (charset). En HTML5 tiene la sintaxis:

<meta charset="identificador-juego-de-caracteres">

Por ejemplo, si se utiliza la codificación UTF-8 (estándar en HTML5 reconocido por la RFC 3629 de la Internet Engineering Task Force (IETF) y una de las tres posibilidades de codificación reconocidas por Unicode):

<meta charset="utf-8">

En HTML4 la sintaxis era diferente:

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

El valor se puede escribir en minúsculas o en mayúsculas, es indiferente, aunque es muhco más común en minúsculas. Además, cuándo el valor de charset no contiene espacios se puede escribir sin comillas:

<meta charset=UTF-8>

Es importante que el meta charset se coloque justo después de la apertura de la etiqueta <head>. De este modo nos aseguramos que el navegador conocerá la codificación de caracteres utilizada antes de que comience a procesar nada. Por ejemplo, una página HTML5 típica podría empezar así:

<!DOCTYPE html>
<html lang="es" dir="ltr">
    <head>
        <meta charset="UTF-8">
        ....

Según las recomendaciones de Google en cuánto a mejorar la velocidad de respuesta de las páginas web, se debe enviar la codificación del documento en las cabeceras HTTP para permitir que el navegador comience a analizar el HTML y a ejecutar scripts de forma inmediata. En Apache se puede hacer añadiendo la siguiente línea al archivo .htaccess:

AddDefaultCharset UTF-8

¿Por qué se debe especificar el Charset?

Aunque el meta charset no es obligatorio, se debería incluir en cualquier página web para indicar de forma expresa la codificación de caracteres utilizada. Las dos razones principales son:

1

Asegurar que la página se ve correctamente

En HTML5 la codificación por defecto si no se especifica nada es UTF-8. No obstante, es el navegador el que finalmente decide la codificación a utilizar. Para evitar un visionado incorrecto en algunos navegadores o navegadores mal configurados, es recomendable incluir siempre la etiqueta meta charset.

En HTML4 la codificación utilizada por defecto es ISO-8859-1 (latin-1). Con con esta codificación todos los caracteres que no aparezcan en el alfabeto latino deberán ser escritos como entidad HTML. Por ejemplo, &aacute; para la á, o &ntilde; para la ñ.

2

UTF-7 XSS Cheat Sheet

El conocido como UTF-7 XSS Cheat Sheet es una vulnerabilidad de seguiridad en webs que no especifican la codificación de sus páginas. Para prevenirlo basta con especificar la codificación, ya sea a través del meta charset o a través de las cabeceras HTTP.

Hemos visto lo fácil que es utilizar el meta charset y su importancia, aunque no lo parezca, no es nada trivial. Así que no te olvides nunca de ponerlo!!!

Referencias