Seitencodierung
Simon
- html
0 Der Martin
0 Simon
Hallo zusammen,
ich habe ein Problem mit der Codierung von Webseiten. Im Header habe ich "<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">" angegeben um dem Browser mitzuteilen wie er die Seite zu interpretieren hat. Nun habe ich jedoch folgende Probleme:
Hat ein User zB UTF-8-Codierung eingestellt, so werden die Umlaute bei ihm nicht korrekt dargestellt. Ich hab nun von mehreren Besuchern gehört das es damit Probleme gibt. Da die Seite in einem Internen Bereich ist, kann ich euch leider keinen Link geben. Aber vielleicht hat jemand eine Idee wie man das beheben kann?
Es sind halt Besucher die komplett unterschiedliche einstellungen der Zeichencodierung haben... :(
Die Seiten speicher ich (OSX) ebenfalls in Latin 1.
Besten Dank!
Hallo Simon,
ich habe ein Problem mit der Codierung von Webseiten. Im Header habe ich "<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">" angegeben um dem Browser mitzuteilen wie er die Seite zu interpretieren hat.
die Angabe ist soweit in Ordnung, wenn du die Seiten auch tatsächlich in dieser Codierung gespeichert hast (was ich vermute). Aber sie ist vermutlich nicht relevant, weil die Angabe aus dem HTTP-Header des Servers Vorrang hat. Wichtig ist also, dass *dort* die richtige Codierung angegeben wird.
Hat ein User zB UTF-8-Codierung eingestellt, so werden die Umlaute bei ihm nicht korrekt dargestellt.
Das ist ja logisch. Wenn jemand in seinem Browser eine bestimmte Codierung *fest* einstellt, ergibt das Blödsinn bei allen Seiten, die nicht in eben nicht in dieser Codierung vorliegen. Deswegen sind die Browser per Default auf "Automatisch" eingestellt, so dass sie selbständig anhand der HTTP-Header oder ersatzweise der META-Angaben die richtige Codierung wählen. Erst wenn beide Angaben fehlen, muss der Browser raten oder auf eine vom Benutzer vorgegebene Einstellung vertrauen - auf die Gefahr hin, dass dann nur nur ein wüster Zeichensalat herauskommt.
Aber vielleicht hat jemand eine Idee wie man das beheben kann?
Du selbst überhaupt nicht. Sorge dafür, dass die Seite korrekt mit den richtigen Codierungsangaben ausgeliefert wird. Welche Codierung das konkret ist, spielt eigentlich eine untergeordnete Rolle, solange keine Widersprüche aufkommen.
Anwender, die ihren Browser von der sinnvollen Voreinstellung "Automatisch" auf etwas anderes fest umstellen, haben normalerweise einen guten Grund dafür und sollten wissen, was sie tun.
So long,
Martin
Hallo Martin,
Besten Dank für Deine Hilfe.
"Aber sie ist vermutlich nicht relevant, weil die Angabe aus dem HTTP-Header des Servers Vorrang hat. Wichtig ist also, dass *dort* die richtige Codierung angegeben wird."
Kann ich die Ausgabe des HTTP-Headers irgendwie beeinflussen?
Ich hab auf http://www.weltreporter.net/test/ nun mal eine kleine Beispielseite gepostet. Zwar habe ich eingestellt das sie als "Western ISO Latin 1" gespeichert werden soll, würde mich aber freuen wenn es jmd überprüfen könnte?
Noch was:
Wenn das Script E-Mails schickt, kann ein Win-User diese nur lesen, wenn die Seite als Latin 1 codiert ist. Ist das richtige, oder hab ich was falsch gemacht?
Danke und Gruss
Hallo,
Aber sie ist vermutlich nicht relevant, weil die Angabe aus dem HTTP-Header des Servers Vorrang hat. Wichtig ist also, dass *dort* die richtige Codierung angegeben wird.
Kann ich die Ausgabe des HTTP-Headers irgendwie beeinflussen?
Möglicherweise.
a) Durch die Grundkonfiguration des Webservers
b) Durch eine lokale Konfiguration des Webservers (.htaccess-Datei)
c) Mit einer serverseitigen Scriptsprache, falls deine Seite mit PHP, Perl o.ä. generiert wird.
Für Möglichkeit a) brauchst du natürlich entsprechende Zugriffsrechte, die du vermutlich nicht hast. Möglichkeit b) bedeutet am wenigsten Aufwand und ist relativ universell, Möglichkeit c) würde erfordern, alle Seiten durch den PHP-Parser zu schleifen.
Ich hab auf http://www.weltreporter.net/test/ nun mal eine kleine Beispielseite gepostet. Zwar habe ich eingestellt das sie als "Western ISO Latin 1" gespeichert werden soll, würde mich aber freuen wenn es jmd überprüfen könnte?
GET http://www.weltreporter.net/test/ HTTP/1.0
Host: www.weltreporter.net
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; de-DE; rv:1.7.5) Gecko/20041108 Firefox/1.0
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: en-us,en;q=0.7,de;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Proxy-Connection: keep-alive
HTTP/1.x 200 OK
Date: Thu, 18 Jan 2007 10:54:48 GMT
Server: Apache/1.3.33 (Unix)
X-Powered-By: PHP/4.4.4
Content-Type: text/html
Content-Length: 626
Proxy-Connection: keep-alive
Dein Server macht keine Angaben zur Zeichencodierung, dann hängt es also ausschließlich an den META-Abgaben. Und der Seitenquelltext sieht nach korrektem ISO-8859-1 aus, die Umlaute werden auch korrekt angezeigt.
Wenn das Script E-Mails schickt, ...
Welches Script?
kann ein Win-User diese nur lesen, wenn die Seite als Latin 1 codiert ist. Ist das richtige, oder hab ich was falsch gemacht?
Nein, das hat nur indirekt miteinander zu tun. Wenn ein Script (z.B. PHP) Mails verschickt, muss ja das Script selbst den zu versendenden Text erzeugen. Das kann man natürlich in beliebigen Codierungen tun - aber auch hier muss man sie dann im Mail-Header korrekt angeben (wie im HTTP-Header oder im META-Tag).
Ciao,
Martin