Willi: Umstellung auf UTF-8 (wg. "Ajax") - Keine Umlaute

Hallo liebe Forenbesucher/innen,

Um JSON auf meiner Seite nutzen zu können, bin ich von Funpic auf einen Paidspace umgestiegen. Leider kommen die Umlaute nicht korrekt beim PHP-Script an, wenn ich ISO-8859-1 verwende. Daher - und auch um in Zukunft auch Entitäten verzichten zu können - wollte ich auf UTF-8 umstellen.

Dazu habe ich auch eine gute Seite gefunden, dennoch werden bei mir Umlaute nicht korrekt angezeigt. Bisher habe ich folgendes getan:
* in jeder Datei wird ein header('content-type: text/html; charset=utf-8') gesendet
* in jede HTML-Datei wird ein Metatag <meta http-equiv="content-type" content="application/xhtml+xml;charset=utf-8" />
* Editor auf UTF-8 umgestellt (leider musste ich dazu den Editor wechseln, mit Weaverslave geht das nicht :()
* in einer .htaccess einen Befehl geschrieben: "AddCharset utf-8 .css .html .xhtml .php"

Kann mir jemand sagen woran es liegt, dass Umlaute dennoch nicht korrekt angezeigt werden? Oder habe ich einen Denkfehler in Sachen UTF-8? Muss man weiterhin Entitäten schreiben?

Grüße,
Willi

  1. hi,

    * in jede HTML-Datei wird ein Metatag <meta http-equiv="content-type" content="application/xhtml+xml;charset=utf-8" />

    Lieferst du die Seiten denn auch mit dem Content-Type: application/xhtml+xml im HTTP Response Header aus?

    * Editor auf UTF-8 umgestellt (leider musste ich dazu den Editor wechseln, mit Weaverslave geht das nicht :()

    Kann mir jemand sagen woran es liegt, dass Umlaute dennoch nicht korrekt angezeigt werden?

    (Geht es um die Seite, die du im URL-Feld angegeben hast? Wenn ja: )
    Daran, dass vorheriger Punkt auf Einbildung beruhen muss.

    Bei "... eine eigene Seite für ..." bspw. ist das ü mitnichten als UTF-8-Bytefolge kodiert.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Hallo wahsaga,

      * in jede HTML-Datei wird ein Metatag <meta http-equiv="content-type" content="application/xhtml+xml;charset=utf-8" />
      Lieferst du die Seiten denn auch mit dem Content-Type: application/xhtml+xml im HTTP Response Header aus?

      Stimmt, du hast recht. Habe gar nicht gesehen, dass ich bei beidem etwas unterschiedliches stehen habe. Habe beides jetzt auf das selbe gestellt (text/html). Aber das ist nicht die Lösung des Problems...

      * Editor auf UTF-8 umgestellt (leider musste ich dazu den Editor wechseln, mit Weaverslave geht das nicht :()

      Kann mir jemand sagen woran es liegt, dass Umlaute dennoch nicht korrekt angezeigt werden?

      (Geht es um die Seite, die du im URL-Feld angegeben hast? Wenn ja: )
      Daran, dass vorheriger Punkt auf Einbildung beruhen muss.

      Du meinst, ich habe den Editor nicht umgestellt? Mhm... PSPad zeigt unten "Kodierung: UTF-8" an.

      Bei "... eine eigene Seite für ..." bspw. ist das ü mitnichten als UTF-8-Bytefolge kodiert.

      Sondern immer noch ANSI?
      Merkwürdig.
      Kennst du einen "zuverlässigen" Editor, der mir die Dateien korrekt auf UTF-8 umstellt?

      Grüße,
      Willi

  2. Wo kommen denn die daten her die angezeigt werden?

    wenn diese von einer mysql datenbank kommen kann es sein das die datenbank nicht auf UTF-8 steht

    wenn dem so ist das du es über datenbank laufen lässt log dich mal im phpmyadmin ein
    gehe dort auf die datenbank über die es leuft
    gehe auf operationen
    dort kannst du dann die Kollation einstellen

    hatte auch so ein problem musste das dann auf  latin1_german1_ci stellen dann funktionierten auch die umlaute

    zurnot musst du das auch für die einzelnen tabellen umstellen

    MFG: Master736

    1. Hallo Master,

      Wo kommen denn die daten her die angezeigt werden?

      Verschieden. Manche sind statisch, manche kommen aus einer Datenbank, bei beidem funktionieren die Umlaut aber nur mit Entitäten.

      hatte auch so ein problem musste das dann auf  latin1_german1_ci stellen dann funktionierten auch die umlaute

      Habe ich getan. Aber warum soll ich auf latein1_german1_ci und nicht UTF-8 stellen?

      Grüße,
      Willi

      1. hatte auch so ein problem musste das dann auf  latin1_german1_ci stellen dann funktionierten auch die umlaute
        Habe ich getan. Aber warum soll ich auf latein1_german1_ci und nicht UTF-8 stellen?

        kannst es damit auch ausprobieren
        bei mir hats mit latin1_german1_ci funkioniert

        mit UTF-8 habe ich es halt nicht getestet ;-)

        MFG: Master736

  3. Hallo,

    Danke an wahsaga und Master - mittlereweile funktionieren die Umlaute und Sonderzeichen in meine PHP-Dateien.
    Es gab wohl einen Fehler in PSPad, der meine Dateien nicht korrekt in UTF-8 konvertiert hat... Wenn jemand einen besseren Editor hat, bitte melden :)

    Nur noch eine Hürde gibt es: Meine Daten aus MySQL-Tabellen werden noch nicht korrekt angezeigt. Werde selber noch rumprobieren, wäre aber für Tipps auch dankbar :-)

    PS: Ich konnte mit Firefox in der my-Ansicht gerade keine Posts schreiben... Bei Nachricht absenden kam ich immer wieder zurück zum Eingabefeld, auch bei "Vorschau" oder "Rechtschreibung überprüfen" wurde nix gesendet bzw. nix anderes angezeigt.

    Grüße,
    Willi

    --
    [link:http://www.peter.in-berlin.de/projekte/selfcode/?code=ie%3A%7B+fl%3A%7C+br%3A%3E+va%3A%29+ls%3A%3C+fo%3A%7C+rl%3A%28+n4%3A%28+ss%3A%7C+de%3A%3E+js%3A%7C+ch%3A%3F+sh%3A%28+mo%3A%7D+zu%3A%7D@title=ie:{ fl:| br:> va:) ls:< fo:| rl:( n4:( ss:| de:> js:| ch:? sh:( mo:} zu:}
    1. Hi Willi!

      Es gab wohl einen Fehler in PSPad, der meine Dateien nicht korrekt in UTF-8 konvertiert hat... Wenn jemand einen besseren Editor hat, bitte melden :)

      Für kleinere Projekte empfehle ich Notepad2. Leider ist die offiziele Seite gerade nicht zu erreichen, deshalb der Verweis auf chip.de.

      Dieser Editor ist sehr schlank und muss nicht installiert werden, beherrscht UTF-8 und Syntaxhighlighting.

      Wenn du noch ein bisschen im Archiv kramst, findest du aber noch weitere Vorschläge.

      MfG H☼psel

      --
      "It's amazing I won. I was running against peace, prosperity, and incumbency."
      George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
      Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)
    2. echo $begrüßung;

      Nur noch eine Hürde gibt es: Meine Daten aus MySQL-Tabellen werden noch nicht korrekt angezeigt. Werde selber noch rumprobieren, wäre aber für Tipps auch dankbar :-)

      In welcher Kodierung sprichst du mit dem DBMS? Vermutlich in keiner speziell festgelegten, weswegen eine Systemdefaulteinstellung greifen wird, was Latin1 sein wird. Das ist der am häufigsten übersehene Punkt beim Kommunizieren mit MySQL-Servern, weswegen die Kurzform der Lösung auch direkt auf der Einstiegsseite des MySQL-Handbuch-Kapitels Character Set Support angegeben und auch oft im hiesigen Archiv zu finden ist.

      Welche Kodierung die Felder einer Tabelle haben, ist nur wichtig für die Daten die sie aufnehmen können. Weicht die Feld-Kodierung von der Kodierung einer bestimmten Client-Verbindung ab, konvertiert MySQL selbständig hin und her. Das kann aber im ungünstigen Fall zu Datenverlust führen, wenn Zeichen in der Zielkodierung nicht definiert sind.

      echo "$verabschiedung $name";