Character encoding
Martin aus Wien
- https
Guten Tag allerseits,
ich habe eine alte Seite http://ourstories.kwikk.info auf einen neuen Server transferiert (Apache 2.2 unter Windows Server 2003).
Die Seite hat die Zeichenkodierung ISO-8859-1:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
Zusätzlich habe ich noch in der root eine .htaccess:
AddCharset ISO-8859-1 .php
Nichtsdestoweniger bestehen Firefox und Internet Explorer darauf, die Seite als Unicode UTF-8 anzuzeigen.
Was mache ich falsch?
Gruß und Dank
Martin aus Wien
hi,
Was mache ich falsch?
Keine Ahnung. Dein Webserver jedenfalls sendet einen
Content-Type: text/html; Charset=utf-8
und danach richten sich die Browser. Was in den Meta-Tags steht, ist dem Browser egal, wenn ein Bild kommt, gibt es ohnehin keine Meta-Tags, entscheidend ist der Content-Type HTTP Header.
Hotti
Problem gelöst dank ChrisB.
Aber wozu ist der Meta-Tag dann eigentlich da?
Gruß
Martin
Hallo,
Aber wozu ist der Meta-Tag dann eigentlich da?
Weil sich der Browser eben doch für diese Angabe interessiert. Z.B. dann, wenn die Seite lokal gespeichert wird. Wäre sehr unfreundlich, wenn durch die lokale Sicherung plötzlich der Inhalt unbrauchbar wird. :)
Gruß
@@Martin aus Wien:
nuqneH
Nichtsdestoweniger bestehen Firefox und Internet Explorer darauf, die Seite als Unicode UTF-8 anzuzeigen.
Zurecht. Im HTTP-Header ist UTF-8 angegeben, wie der W3C Internationalization Checker verrät.
Was mache ich falsch?
Von deiner Apache-Konfiguration abgesehen: Du verwendest eine veraltete, für dei meisten Fälle unbrauchbare Zeichencodierung ISO 8859-1.
Verwende UFT-8, immer und überall!
Qapla'
Zurecht. Im HTTP-Header ist UTF-8 angegeben, wie der W3C Internationalization Checker verrät.
Das war mir schon klar, ich wusste bloß nicht, warum im HTTP-Header UTF-8 steht.
Von deiner Apache-Konfiguration abgesehen: Du verwendest eine veraltete, für dei meisten Fälle unbrauchbare Zeichencodierung ISO 8859-1.
Verwende UFT-8, immer und überall!
Das ist mir auch klar. Ich habe doch geschrieben, dass es eine alte Seite ist.
Danke trotzdem für deine Bemühung
Martin
Hi,
Zusätzlich habe ich noch in der root eine .htaccess:
AddCharset ISO-8859-1 .phpNichtsdestoweniger bestehen Firefox und Internet Explorer darauf, die Seite als Unicode UTF-8 anzuzeigen.
Vermutlich ist in der PHP-Konfiguration ein default_charset gesetzt.
MfG ChrisB
Danke! ini_set('default_charset', 'iso-8859-1') hat's gebracht!
Gruß
Martin
Hallo,
Danke! ini_set('default_charset', 'iso-8859-1') hat's gebracht!
IMO wäre die entsprechende Direktive in der Apache-Konfiguration noch sinnvoller, wo sie dann auch für statisches HTML gilt.
Und vergiss nicht, die Zeichencodierung auch für Javascript, Stylesheets und sonstige textbasierte Dateien zu kontrollieren. Sonst tauchen dort über kurz oder lang die gleichen Probleme wieder auf.
Oder, wie Gunnar schon empfiehlt, alles auf UTF-8 umstellen. Würde natürlich heißen: Alle bestehenden Dateien umcodieren.
So long,
Martin
@@Der Martin:
nuqneH
Oder, wie Gunnar schon empfiehlt, alles auf UTF-8 umstellen. Würde natürlich heißen: Alle bestehenden Dateien umcodieren.
… wenn die Dateien denn Nicht-ASCII-Zeichen enthalten, was bei CSS- und JavaScript-Dateien oft nicht der Fall ist.
Qapla'