bjacke: XHTML 1.0 und charset

Hi,

kaum ist die Seite auf dem neuen Server werden Umlaute nicht mehr richtig angezeigt, obwohl im meta das charset definiert wurde.
Woran kann dass jetzt liegen?

->http://www.warr.de/baustelle/htdocs/news.php

Gruß basti

  1. Woran kann dass jetzt liegen?

    ->http://www.warr.de/baustelle/htdocs/news.php

    Gruß basti

    weil die Inhalte Deiner Seite UTF-8-codiert sind.
    Header ("Content-type") und META sind aber auf ISO-8859-1 gesetzt. Kann also nicht klappen.

  2. Hallo Basti,

    kaum ist die Seite auf dem neuen Server werden Umlaute nicht mehr richtig angezeigt, obwohl im meta das charset definiert wurde.

    wenn HTML-Dokumente von einem "anständigen" HTTP-Server ausgeliefert werden, ist die META-Angabe, die du meinst, auch völlig wurscht. Wichtig ist, was der Server im HTTP-Header für ein charset angibt, denn die Angabe hat Vorrang. Wie David schon festgestellt hat, liefert dein Server UTF-8 aus, du hast die Dateien aber als ISO-8859-1 gespeichert.
    Du hast nun zwei Möglichkeiten: Entweder du codierst deine HTML-Dokumente um in UTF-8, oder du stellst deinen Server so um, dass der ISO-8859-1 als Codierung angibt.
    Ich persönlich würde die zweite Möglichkeit wählen, aber das ist Geschmackssache.

    So long,
     Martin

    --
    Wer im Glashaus sitzt, sollte Spaß am Fensterputzen haben.
    1. Hi,

      wenn HTML-Dokumente von einem "anständigen" HTTP-Server ausgeliefert werden, ist die META-Angabe, die du meinst, auch völlig wurscht. Wichtig ist, was der Server im HTTP-Header für ein charset angibt, denn die Angabe hat Vorrang. Wie David schon festgestellt hat, liefert dein Server UTF-8 aus, du hast die Dateien aber als ISO-8859-1 gespeichert.

      ich glaub ich brauch mal wieder Nachhilfe... Meine Live HTTP Headers sagt mir nichts von UTF-8?!
      ------------------------
      http://www.warr.de/baustelle/htdocs/news.php

      GET /baustelle/htdocs/news.php HTTP/1.1
      Host: www.warr.de
      User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1
      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: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
      Accept-Encoding: gzip,deflate
      Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
      Keep-Alive: 300
      Connection: keep-alive
      Cookie: PHPSESSID=6d019a72390a35119f58e9182ecf5cfa
      Cache-Control: max-age=0

      HTTP/1.x 200 OK
      Date: Sun, 19 Mar 2006 18:00:16 GMT
      Server: Apache/1.3.33 (Darwin) DAV/1.0.3 PHP/4.3.11
      Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
      Expires: Thu, 19 Nov 1981 08:52:00 GMT
      X-Powered-By: PHP/4.3.11
      Pragma: no-cache
      Connection: close
      Transfer-Encoding: chunked
      Content-Type: text/html; charset=ISO-8859-1
      Content-Language: en
      ------------------------

      Oder sprichst du davon, dass der Server zwar behauptet ISO auszuliefern, die Zeichen aus der Datei aber in einer UTF-8-Kodierung ausliefert?

      MfG
      Rouven

      --
      -------------------
      ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
      1. Hallo,

        ich glaub ich brauch mal wieder Nachhilfe...

        nein, ich. Und zwar im Lesen.  :-|

        Meine Live HTTP Headers sagt mir nichts von UTF-8?!

        Ich hab's nicht selbst nachgeprüft, sondern mich nur auf das gestützt, was David Aurelio im Parallelposting schon verraten hat. Nur hätte ich es richtig lesen sollen: Ich hatte ihn so verstanden, als liefere der Server "UTF-8" im Content-Type Header, obwohl das Dokument eigentlich ISO-codiert wäre. Anscheinend meinte er genau das Gegenteil.

        Oder sprichst du davon, dass der Server zwar behauptet ISO auszuliefern, die Zeichen aus der Datei aber in einer UTF-8-Kodierung ausliefert?

        So wird wahrscheinlich ein Schuh draus. Offensichtlich als UTF-8 gespeichert, aber als ISO gekennzeichnet, HTTP-Header und meta stimmen überein (hab's gerade selbst nochmal gecheckt).

        Übrigens ist das mal wieder eine von den Seiten, die mein Firefox 1.0.4 zwar korrekt (laut Live-HTTP-Extension) empfängt, aber er zeigt mir nur eine leere Seite. Auf Nachfrage (View Page Source) behauptet er dann, das hier sei der vollständige Quelltext der Seite:

        <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title></title></head><body></body></html>

        Das hat mich schon bei vielen Seiten genervt - einer der unerklärlichen Firefox-Bugs; ich hasse diesen Browser so langsam. Opera und IE zeigen die Seite problemlos an.

        So long,
         Martin

        --
        Die letzten Worte des Polizisten:
        Ich hab mitgezählt: Sechs Schuss, jetzt hat er keine Munition mehr!
        1. Hallo Martin,

          Übrigens ist das mal wieder eine von den Seiten, die mein Firefox 1.0.4 zwar korrekt (laut Live-HTTP-Extension) empfängt, aber er zeigt mir nur eine leere Seite. Auf Nachfrage (View Page Source) behauptet er dann, das hier sei der vollständige Quelltext der Seite:

          <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title></title></head><body></body></html>

          Das hat mich schon bei vielen Seiten genervt - einer der unerklärlichen Firefox-Bugs;

          Der Bug ist mir zwar noch nicht untergekommen (könnte übrigens eine Extension sein, die Du vewendest und das verursacht, ich aber nicht verwende), aber unabhängig davon: Solltest Du nicht schon aus Sicherheitsgründen nicht besser auf mindestens 1.0.7 aktualisieren?

          Viele Grüße,
          Christian

          1. Hallo Christian,

            Das hat mich schon bei vielen Seiten genervt - einer der unerklärlichen Firefox-Bugs;
            Der Bug ist mir zwar noch nicht untergekommen (könnte übrigens eine Extension sein, die Du vewendest und das verursacht, ich aber nicht verwende), ...

            kann ich mir kaum vorstellen: Auf meinem heimischen PC ist die LiveHTTP-Headers die einzige Extension, die ich installiert habe.

            aber unabhängig davon: Solltest Du nicht schon aus Sicherheitsgründen nicht besser auf mindestens 1.0.7 aktualisieren?

            Nö, ich glaube nicht, da ich den FF sowieso nur "unter Zwang" benutze, wenn es unbedingt sein muss. Ich werde aber demnächst mal eine aktuelle 1.5er Version auf einen meiner Rechner packen.

            So long,
             Martin

            --
            Success should be measured not so much by the position that one has reached in life,
            but by the obstacles one has overcome while trying to succeed.
          2. Hi,

            Übrigens ist das mal wieder eine von den Seiten, die mein Firefox 1.0.4 zwar korrekt (laut Live-HTTP-Extension) empfängt, aber er zeigt mir nur eine leere Seite. Auf Nachfrage (View Page Source) behauptet er dann, das hier sei der vollständige Quelltext der Seite:

            <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title></title></head><body></body></html>

            Der Bug ist mir zwar noch nicht untergekommen (könnte übrigens eine Extension sein, die Du vewendest und das verursacht, ich aber nicht verwende), aber unabhängig davon: Solltest Du nicht schon aus Sicherheitsgründen nicht besser auf mindestens 1.0.7 aktualisieren?

            Ich habe den 1.0.7 und hierin (auf dieser Seite erstmalig) ein noch seltsameres Phänomen beobachtet: URL in die Adreßzeile kopiert, go -> es wird eine leere Seite dargestelt und im selben Augenblick ein neuer Tab mit der Anzeige des o.g. Quelltextes geöffnet.
            Quelltext-Tab geschlossen, reload -> immer noch leere Seite. go -> die richtige Seite wird angezeigt und auch der komplette Quelltext läßt sich aufrufen.

            freundliche Grüße
            Ingo

    2. echo $begrüßung;

      Wie David schon festgestellt hat, liefert dein Server UTF-8 aus, du hast die Dateien aber als ISO-8859-1 gespeichert.

      Woher willst du wissen, wie die Dateinen gespeichert sind?

      Ich kann folgende Angaben erkennen:
      Charset-Angabe im HTTP-Header: ISO-8859-1
      Charset-Angabe im HTML-META-Tag: ISO-8859-1
      Kodierung der Umlaute im HTML-Quelltext: Entities, ISO-8859-1 und UTF-8

      Meine Vermutung ist, dass einige Inhalte aus einer Datenquelle kommen und dort drin UTF-8-kodiert sind, der Rest der Seite ein Template ist, das ISO-8859-1-kodiert ist.

      echo "$verabschiedung $name";

      1. Meine Vermutung ist, dass einige Inhalte aus einer Datenquelle kommen und dort drin UTF-8-kodiert sind, der Rest der Seite ein Template ist, das ISO-8859-1-kodiert ist.

        Danke @all,

        daran lag es, beim exportieren der mysql Daten ist das passiert, weil auf dem einen server eine neuere version lief musst ich beim exportieren das charset irgendwie rausbekommen, hatte aber die falsche operation dafür gewählt.

        Schönes WE

    3. HI!

      ich hatte kürzlich das Problem, dass der Windows Editor die Dateien immer in einer Kodierung seiner Wahl abspeichert. Wie kriege ich den dazu, alles in ISO-8859-1 abzuspeichern?

      Gruß aus Iserlohn

      Martin

      --
      Wer im Glashaus lebt, sollte im Keller vögeln.
      1. echo $begrüßung;

        ich hatte kürzlich das Problem, dass der Windows Editor die Dateien immer in einer Kodierung seiner Wahl abspeichert. Wie kriege ich den dazu, alles in ISO-8859-1 abzuspeichern?

        War die Datei vielleicht schon UTF-8-kodiert? Hatte sie eine UTF-8-BOM?
        Beim "Speichern unter" lässt sich beim Windows Editor Version 5.1 eine Codierung einstellen.

        echo "$verabschiedung $name";

        1. Hi!

          War die Datei vielleicht schon UTF-8-kodiert? Hatte sie eine UTF-8-BOM?
          Beim "Speichern unter" lässt sich beim Windows Editor Version 5.1 eine Codierung einstellen.

          Die Datei wurde komplett im Windows Editor erstellt, als Kodierung wurde immer "ANSI" (also die Standard-Einstellung) gewählt.

          Ich habe dort die Auswahl zwischen ANSI, Unicode, Unicode big Endian und UTF-8. Wie kriege ich dann ISO-8859-1 hin?

          Gruß aus Iserlohn

          Martin

          --
          Wer anderen eine Bratwurst brät, hat ein Bratwurstbratgerät.
          Selfcode: ie:{ fl:( br:^ va:) ls:# fo:| rl:( n4:( ss:| de:> js:) ch:? sh:( mo:| zu:)
          1. Hallo,

            Ich habe dort die Auswahl zwischen ANSI, Unicode, Unicode big Endian und UTF-8. Wie kriege ich dann ISO-8859-1 hin?

            mit ANSI meint der Windows-Notepad in Wirklichkeit Windows-1252, mit Unicode meint er UTF-16 (LSB zuerst, Intel-Format), und mit Unicode Big Endian meint er UTF-16 (mit MSB zuerst, also im Motorola-Format).

            Da ISO-8859-1 bis auf den Code-Bereich 80h..9Fh mit Windows-1252 identisch ist, hast du im Prinzip ISO-8859-1, wenn du als "ANSI" speicherst, aber die Zeichen 80h..9Fh nicht verwendest.

            Schönen Tag noch,
             Martin

            --
            Viele Fachleute vertreten die Ansicht, jedes Feature eines Programms, das sich nicht auf Wunsch abstellen lässt, sei ein Bug.
            Außer bei Microsoft. Da ist es umgekehrt.