No, no es posible desde el HTML. El encabezado de respuesta del servidor tiene prioridad sobre la metaetiqueta del documento. Como se especifica en 5.2.2 Especificación de la codificación de caracteres - Especificación HTML 4.01 :
En resumen, los agentes de usuario conformes deben observar las siguientes prioridades al determinar la codificación de caracteres de un documento (de la prioridad más alta a la más baja):
- Un parámetro HTTP "charset" en un campo "Content-Type".
- Una declaración META con "http-equiv" establecido en "Content-Type" y un valor establecido para "charset".
- El atributo charset establecido en un elemento que designa un recurso externo.
Por lo tanto, esto requiere configuración en el lado del servidor. Sin embargo, a medida que el capítulo continúa:
Los agentes de usuario pueden proporcionar un mecanismo que permita a los usuarios anular la información incorrecta del "juego de caracteres". Sin embargo, si un agente de usuario ofrece dicho mecanismo, solo debería ofrecerlo para navegar y no para editar, para evitar la creación de páginas web marcadas con un parámetro "charset" incorrecto.
En mi caso, el encabezado Content-Type del servidor contiene el tipo mime correcto pero el juego de caracteres incorrecto .
Al final resultó que, mi configuración httpd de Apache había configurado el AddDefaultCharset
encendido que estaba agregando la ; charset=ISO-8859-1
parte. Colocando en el directorio raíz del sitio web .htaccess
la siguiente línea:
AddDefaultCharset Off
se eliminó la información del juego de caracteres:
$ curl -I http://example.com/file.html
HTTP/1.1 200 OK
Date: Fri, 19 Oct 2012 15:07:52 GMT
...
Content-Type: text/html
(Ver última línea, sin ; charset=...
parte). Esto, en combinación con la metaetiqueta html, activa dichas heurísticas del navegador para hacerse cargo del conjunto de caracteres de la metaetiqueta. El sitio web está correctamente decodificado.
Probado con:
- Google Chrome v. 22.0.1229.94
- Firefox v. 16.0.1
- Lynx Versión 2.8.7rel.1 (05 de julio de 2009)
Estos tres navegadores tenían problemas con la configuración original y funcionan ahora (todos en Fedora 17).
- Opera 12.02
- Internet Explorer 6 (Win XP SP3)
No tuve el problema en primer lugar. Ambos preferían UTF-8 de la metaetiqueta sobre la configuración ISO-8859-1 del servidor.
No es compatible con UTF-8, por lo que siempre elige Western (Latin1) independientemente de la configuración del servidor y la metaetiqueta.