"We are back" « oc.at

codierung html/apache richtig setzen?

Bogus 11.03.2011 - 10:11 1232 2 Thread rating
Posts

Bogus

C64 Generation
Avatar
Registered: Mar 2006
Location: Graz
Posts: 3170
hi

habe erstmals ein kleines problem mit der codierung einer website.

Code:
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

im html header ist gesetzt. die website wird aber am demo (lokalen) server falsch angezeigt. muss den browser auf utf-8 stellen damit's richtig ist.
wenn ich die site aber hochlade, dann passt alles.

kann das sein? apache config/version hat damit ja nix zu tun, oder?

COLOSSUS

Administrator
GNUltra
Avatar
Registered: Dec 2000
Location: ~
Posts: 12116
HTTP spezifiziert im Content-type-Header des Protokolldatenstroms das Encoding der Resource. Das wiegt laut Spec immer schwerer als ein etwaiger Meta-Tag nach den Headern. Dann muss natuerlich die Resource, die du da auslieferst (dein HTML-Dokument z. B.), auch "wahrheitsgetreu" kodiert sein. Wenn du das auszuliefernde Dokument in UTF-8 speicherst (oder UTF-8 kodierten Output dynamisch generierst), und der Server im Header das Encoding als ISO-8859-1 angibt, dann sitzt du in der Tinte. Luegen zahlt sich naemlich nicht aus. :D

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25471
Es gibt mehrere Arten das Encoding zu setzen. Zuerst überprüft der Browser, ob das Encoding per Header mitgeliefert wird. Nur wenn das nicht der Fall ist, greift er auf das Meta-Tag zurück (oder auf seine Default-Einstellung).

Wenn er dein Meta-Tag also nicht liest, dann liegt das in jedem Fall an der Webserver-Konfiguration. Bei Apache ist dafür hauptsächlich die Option AddDefaultCharset verantwortlich. Am besten du entfernst das Statement komplett und lässt die Webseiten über ihr Encoding entscheiden. Oder du setzt es nur per Virtual Host.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz