Studi: Character encoding im Metatag wird ignoriert

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

  1. @@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'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)
    1. 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

      1. 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

        --
        Verliebt:    Er spricht, sie lauscht.
        Verlobt:     Sie spricht, er lauscht.
        Verheiratet: Beide sprechen, und die Nachbarn lauschen.
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        1. 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

          1. @@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.

            --
            Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
            (Mark Twain)
  2. 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: &#65279;

    (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)

    1. @@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: &#65279;

      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'

      --
      Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
      (Mark Twain)
      1. 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.

      2. 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.