Antes de la introducción de HTML5, establecer la codificación de caracteres en un documento con un elemento requiere que escriba la línea un tanto verborreica que se ve a continuación. Estos son los elementos de Meta Charset si estaba usando HTML4 en su página web:
Lo que es importante notar en este código son las comillas que se ven alrededor del atributo content : content= «text/html; charset=iso-8859-1 « . Como todos los atributos HTML, estas comillas definen el valor del atributo, indicando que toda la cadena text/html; charset=iso-8959-1 es el contenido de este elemento. También es difícil de manejar largo y feo! Tampoco es algo que puedas recordar de la parte superior de tu cabeza! En la mayoría de los casos, los desarrolladores web tendrían que copiar y pegar este código de un sitio en uno nuevo que estuvieran desarrollando porque escribir esto desde cero era pedir mucho.
Índice de contenidos
HTML5 recorta las «cosas» adicionales
HTML5 no sólo agregó un número de nuevos elementos al lenguaje, sino que también simplificó mucho la sintaxis de HTML, incluyendo el elemento Meta Charset. con HTML5, puede agregar su codificación de caracteres con la sintaxis mucho más fácil de recordar para el elemento META que ve a continuación:
Compara esa sintaxis simplificada con lo que escribimos al principio de este, la vieja sintaxis usada para HTML4, y verás lo fácil que es escribir y recordar la versión HTML5. En lugar de tener que copiar y pegar esto de un sitio existente en uno nuevo en el que estaba trabajando, esto es algo que, como desarrollador web de front-end, podría recordar. Este ahorro de tiempo no es mucho, pero si consideramos las otras áreas de sintaxis que HTML5 simplificó, ¡los ahorros se acumulan!
Incluir siempre la codificación de caracteres
Siempre debe incluir la codificación de caracteres para sus páginas web, incluso si nunca ha tenido la intención de utilizar caracteres especiales. Si no incluye una codificación de caracteres, su sitio se vuelve vulnerable a un ataque de secuencias de comandos entre sitios utilizando UTF-7.
En este escenario, el atacante ve que su sitio no tiene definida ninguna codificación de caracteres, por lo que engaña al navegador para que piense que la codificación de caracteres de la página es en realidad UTF-7. A continuación, el atacante inyecta scripts codificados UTF-7 en la página web y su sitio es pirateado, lo cual es obviamente problemático para todos los involucrados, desde su empresa hasta sus visitantes. La buena noticia es que es un problema simple de evitar - sólo asegúrese de añadir codificación de caracteres a todas sus páginas web.
Dónde añadir codificación de caracteres
La codificación de caracteres para una página web debe ser la primera línea del elemento HTML de su sitio web, lo que garantiza que el navegador sepa qué es la codificación de caracteres antes de hacer cualquier otra cosa en la página que no sea determinar el tipo de documento e identificar que se trata de una página HTML. Su HTML debe leerse:
>
Uso de cabeceras HTTP para mayor seguridad
También puede especificar la codificación de caracteres en las cabeceras HTTP. Esto es aún más seguro que añadirlo a la página HTML, pero necesitaría tener acceso a las configuraciones del servidor o a los archivos.htaccess, lo que significa que podría necesitar trabajar con el proveedor de alojamiento de su sitio web para obtener este tipo de acceso o hacer que ellos hagan los cambios por usted. El acceso es realmente el reto aquí. El cambio en sí mismo es simple, por lo que cualquier proveedor de hosting debe ser capaz de hacer este cambio para usted con relativa facilidad.
Si está usando Apache, puede establecer el juego de caracteres por defecto para todo su sitio añadiendo: AddDefaultCharset UTF-8 a su archivo raíz .htaccess . El juego de caracteres por defecto de Apache es ISO-8859-1 .