Character encoding im Metatag wird ignoriert
Studi
- html
Hi
ich hoste eine HTML seite auf meinem Uniaccount mit <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
, bekomme es aber nur mit "ISO-8859-1" angezeigt.
Habe es nun zuhause und an der Uni sowohl mit Konqueror als auch mit Firefox getestet.
Mache ich was falsch oder kann man Apache so konfigurieren dass die Metatags per HTTP header überladen werden???
VG
Studi
@@Studi:
nuqneH
ich hoste eine HTML seite auf meinem Uniaccount mit
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
, bekomme es aber nur mit "ISO-8859-1" angezeigt.
„Stellen Sie sicher, dass Ihr Server das Richtige tut“ [qa-changing-encoding]
Wenn du an die Servereinstellungen überhaupt nicht rankommst (d.h. nicht einmal per eigener .htaccess), könntest du per PHP den Header setzen.
Qapla'
Nanu, nanu Gunnar!
„Stellen Sie sicher, dass Ihr Server das Richtige tut“ [qa-changing-encoding]
Websniffer sagt mir
Date: Mon, 05 Mar 2012 14:35:09 GMT
Server: Apache/1.3.26 (Unix) Debian GNU/Linux PHP/4.1.2
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=iso-8859-1
Wenn du an die Servereinstellungen überhaupt nicht rankommst (d.h. nicht einmal per eigener .htaccess), könntest du per PHP den Header setzen.
Rein statisches HTML.
Habe Beispiele aus Setting charset in htaccess ausprobiert, bekomme aber dann "Internal Server Error" angezeigt. :(
ich less mich noch mal bei htaccess ein vieleicht waren die Beispiele verkürzt oder es müssen spezielle Rechte gesetzt werden...
Live long and prosper :)
Studi
Hallo,
Mache ich was falsch oder kann man Apache so konfigurieren dass die Metatags per HTTP header überladen werden???
im Gegenteil, das ist der Normalfall: Sobald im HTTP-Header eine bestimmte Information verhanden ist, hat sie Vorrang vor einem gleichnamigen meta-Element. Die meta-Angaben sind daher nur als Fallback für den Fall gedacht, dass der Server keine Angabe macht oder das Dokument auf anderem Weg als HTTP übermittelt wird.
Date: Mon, 05 Mar 2012 14:35:09 GMT
Server: Apache/1.3.26 (Unix) Debian GNU/Linux PHP/4.1.2
Apache und PHP aus der frühen Bronzezeit. Du hattest doch gesagt "Uni", nicht "Museum".
Content-Type: text/html; charset=iso-8859-1
Peng. Und diese Angabe gilt, da kannst du meta-Elemente notieren, so viel du magst.
Wenn du an die Servereinstellungen überhaupt nicht rankommst (d.h. nicht einmal per eigener .htaccess), könntest du per PHP den Header setzen.
Rein statisches HTML.
Okay, aber wenn du nicht die Berechtigung hast, per .htaccess die Einstellungen zu verändern, wäre es trotzdem eine Option, das Dokument einfach auf ".php" umzubenennen und dann mit PHP den entsprechenden Header zu setzen.
Habe Beispiele aus Setting charset in htaccess ausprobiert, bekomme aber dann "Internal Server Error" angezeigt. :(
Dann hast du entweder einen Fehler gemacht, oder hast nicht die Berechtigung, diese Dinge zu nutzen.
Ciao,
Martin
php ist für Studis deaktiviert
Kann man apache so einstellen dass er iso-8859-1 nur nimmt, wenn KEIN meta tag da ist, dann versuch ich das dem www-admin vorzuschlagen.
Auf jeden Fall Danke! :)
Studi
@@Studi:
nuqneH
Kann man apache so einstellen dass er iso-8859-1 nur nimmt, wenn KEIN meta tag da ist, dann versuch ich das dem www-admin vorzuschlagen.
Man kann den Apachen so einstellen, dass er keine Zeichencodierungs-Angabe im HTTP-Header macht. Dann gilt die jeweilige meta-Angabe im Dokument. Mit der Folge, dass all die Seiten, die keine solche Angabe im Dokument haben, womöglich nicht mehr richtig dargestellt werden. Das wird dein Admin nicht wollen.
Wenn für dich weder .htaccess noch PHP (o.a. severseitige Sprache) zur Verfügung stehen, musst du wohl in den sauren Apfel beißen und deine HTML-Dokumente in ISO 8859-1 codieren. Und Zeichen, die sich darin nicht codieren lassen, escapen. [qa-escapes]
Qapla'
PS: Vielleicht besorgst du dir auch eigenen Webspace.
Hi
ich hoste eine HTML seite auf meinem Uniaccount mit
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
, bekomme es aber nur mit "ISO-8859-1" angezeigt.
Wenn Du keinen Zugriff auf die Serverkonfiguration hast, hilft ein BOM.
Wenn die HTML-Datei mit einem BOM startet (vor dem <!DOCTYPE>), weiß der Browser, daß der Rest UTF-8 ist.
Du kannst das BOM mit einem guten Editor einfügen.
Z.B. mit Geany: -> Document -> Write Unicode BOM.
Wahrscheinlich kannst Du es auch als HTML Entity einfügen, hab ich aber noch nicht getestet: 
(Nebenbei: Nach aktueller HTML-Norm lautet der Meta-Tag einfach
<meta charset=utf-8>. Das ist mindestens 10 Jahre rückwärtskompatibel, die lange Form ist nicht mehr notwendig)
@@j.j.:
nuqneH
Du kannst das BOM mit einem guten Editor einfügen.
Das ist wohl keine gute Idee. [qa-byte-order-mark, qa-utf8-bom]
Und hilft auch nicht im geringsten: Prioritätsregeln [qa-html-encoding-declarations]
Wahrscheinlich kannst Du es auch als HTML Entity einfügen, hab ich aber noch nicht getestet: 
Nein, das geht natürlich nicht. Dann stünden die Zeichen '&', '#', '6', '5', '2', '7', '9', ';' im Quelltext, nicht das BOM.
(Nebenbei: Nach aktueller HTML-Norm lautet der Meta-Tag einfach
<meta charset=utf-8>.
Wenn man denn HTML5 schreibt, ja. [qa-html-encoding-declarations]
Qapla'
Das ist wohl keine gute Idee. [qa-byte-order-mark, qa-utf8-bom]
Das ist doch wohl seit Jahren kein reales Problem mehr?!
Und hilft auch nicht im geringsten: Prioritätsregeln [qa-html-encoding-declarations]
Hmm, richtig! Da war ich der Zeit voraus:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=15359
(Nebenbei: Nach aktueller HTML-Norm lautet der Meta-Tag einfach
<meta charset=utf-8>.Wenn man denn HTML5 schreibt, ja. [qa-html-encoding-declarations]
Es gibt nur noch *ein* HTML, aber das wäre eine andere Diskussion.
Und hilft auch nicht im geringsten: Prioritätsregeln [qa-html-encoding-declarations]
Nur zur Klarstellung:
Diese Regeln machen in Bezug auf das BOM keinen Sinn, WebKit und IE halten sich nicht daran und deshalb soll die HTML Norm entsprechend geändert werden.