Um ein paar Ungereimtheiten aus dem Weg zu schaffen: ISO 8859-1 ist ein
Zeichensatz, UTF-8 eine
Zeichenkodierung des Unicode-Zeichensatzes. Das sind zwei Begriffe, die unbedingt auseinander gehalten werden sollten.
Die synonyme Verwendung im
charset-Parameter daher etwas fehlleitend, hat aber historische Gründe, da Multibyte-Kodierungen erst später aufkamen.
Was den Ort der Angabe angeht, überschreiben „höherpriorisierte Instanzen“ die niedrigeren. Die
Reihenfolge ist dabei: HTTP-Header, XML-Deklaration (im Falle von XHTML), Angabe in einem
meta-Element und zum Schluss die Standardkodierung beziehungsweise der Standardzeichensatz des Client.
Und da der Webserver ebenfalls eine Standardzeichenkodierung/ein Standardzeichensatz eingestellt hat, muss dieser Wert direkt im Webserver angepasst beziehungsweise durch entsprechende Methoden verändert werden. Denn selbst wenn im Dokument
X angegeben wird, der Webserver es wegen der internen Einstellung aber als
Y ausliefert, wird
Y statt
X verwendet.