No, non è possibile all'interno dell'HTML. L'intestazione della risposta del server ha la precedenza sul meta-tag del documento. Come specificato in 5.2.2 Specifica della codifica dei caratteri - Specifica HTML 4.01 :
Per riassumere, gli user agent conformi devono osservare le seguenti priorità quando si determina la codifica dei caratteri di un documento (dalla priorità più alta alla più bassa):
- Un parametro "charset" HTTP in un campo "Tipo di contenuto".
- Una dichiarazione META con "http-equiv" impostato su "Content-Type" e un valore impostato per "charset".
- L'attributo charset impostato su un elemento che designa una risorsa esterna.
Quindi questo richiede una configurazione sul lato server. Tuttavia, come continua il capitolo:
I programmi utente possono fornire un meccanismo che consente agli utenti di sovrascrivere informazioni "charset" errate. Tuttavia, se un programma utente offre tale meccanismo, dovrebbe offrirlo solo per la navigazione e non per la modifica, per evitare la creazione di pagine Web contrassegnate con un parametro "charset" errato.
Nel mio caso, l' intestazione Content-Type del server contiene il giusto tipo MIME ma il set di caratteri sbagliato .
A quanto pare, la mia configurazione httpd di Apache aveva impostato l' AddDefaultCharset
accensione che stava aggiungendo la ; charset=ISO-8859-1
parte. Inserire nella directory principale dei siti Web .htaccess
la seguente riga:
AddDefaultCharset Off
le informazioni sul set di caratteri sono state rimosse:
$ 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
(vedi ultima riga, nessuna ; charset=...
parte). Questo in combinazione con il meta-tag html innesca la suddetta euristica del browser per assumere il set di caratteri dal meta-tag. Il sito Web è stato correttamente decodificato.
Testato con:
- Google Chrome v. 22.0.1229.94
- Firefox v. 16.0.1
- Lynx versione 2.8.7rel.1 (05 lug 2009)
Questi tre browser hanno avuto problemi con la configurazione originale e funzionano ora (tutti su Fedora 17).
- Opera 12.02
- Internet Explorer 6 (Win XP SP3)
Non ho avuto il problema in primo luogo. Entrambi preferivano UTF-8 dal meta-tag rispetto all'impostazione ISO-8859-1 dal server.
Non supporta UTF-8, quindi sceglie sempre Western (Latin1) indipendentemente dall'impostazione del server e dal meta-tag.