He estado viendo esta instrucción como la primera línea de numerosos archivos CSS que me han sido entregados:
@charset "UTF-8";
¿Qué hace, y es necesaria esta regla?
Además, si incluyo esta metaetiqueta en mi elemento "head", ¿eso eliminaría la necesidad de que también esté presente en mis archivos CSS?
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
css
character-encoding
rsturim
fuente
fuente
Esto es útil en contextos donde la codificación no se cuenta por encabezado HTTP u otros metadatos, por ejemplo, el sistema de archivos local.
Imagine la siguiente hoja de estilo:
Si un lector guarda el archivo en un disco duro y omite la
@charset
regla, la mayoría de los navegadores lo leerán en la codificación regional del sistema operativo, por ejemplo, Windows-1252, e insertarán â † en lugar de una flecha.Desafortunadamente, no puede confiar en este mecanismo ya que el soporte es bastante ... raro. Y recuerde que en la red un encabezado HTTP siempre anulará la
@charset
regla.Las reglas correctas para determinar el conjunto de caracteres de una hoja de estilo están en orden de prioridad:
@charset
reglaLa última regla es la más débil, que se fallará en algunos navegadores.
El
charset
atributo en<link rel='stylesheet' charset='utf-8'>
es obsoleto en HTML 5 .Cuidado con los conflictos entre las diferentes declaraciones. No son fáciles de depurar.
Lectura recomendada
@charset
si más de un nombre se ha registrado para la misma codificación.@charset
. Hay una mesa de apoyo. No confio en esto :)fuente
content-type:text/css;charset=utf-8
encabezado?Una razón para incluir siempre una especificación de juego de caracteres en cada página que contiene texto es para evitar vulnerabilidades de scripts entre sitios. En la mayoría de los casos, el juego de caracteres UTF-8 es la mejor opción para el texto, incluidas las páginas HTML.
fuente
Si está poniendo una etiqueta <meta> en sus archivos CSS, está haciendo algo mal. La etiqueta <meta> pertenece a sus archivos html y le dice al navegador cómo está codificado el html, no dice nada sobre el css, que es un archivo separado. Es posible que tenga codificaciones completamente diferentes para su html y css, aunque no puedo imaginar que sea una buena idea.
fuente