mal wieder ein encoding-problem

  • also ich hab hier ne phpfile, die hab ich als utf-8 ohne bom abgespeichert und sie hat im header folgendes metatag:

    HTML
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />

    der text in der datenbank ist mit kollation "utf8_unicode_ci" gespeichert.

    doch beim auslesen aus der DB werden umlaute zu "�"

    jemand ne ahnung wie ich des beheben kann?
    dachte immer der ganze stream muss utf-8 sein...


    edit:
    wenn ich die ausgabe mit utf8_encode() formatiere klappt es, was aber in meinen augen nur nen schäbiger workaround ist ...

    Einmal editiert, zuletzt von synaptic (25. Juli 2009 um 15:32)

  • hallo,
    thread ist schon ein paar Tage alt-
    dennoch-
    hatte ähnliche Probleme und bin auf iso 8859(Western European)//EN(oder so ähnlich)
    gegangen, Probleme Umlaute waren behoben.
    Leider, siehe anderen Thread hier, gibts dann evtl. Probleme beim Validator
    HTML Check...(W3C)

  • Das mit dem Umstieg auf ISO-x ist aber nicht unbedigt sinnvoll.
    Synaptic, hast du die Datei als UTF8-ohne Boom abgespeichert?
    Öffne die Datei mal in Notepad++ und wenn du da beim Menü auf Format gehst, siehst du es.

    Wenn es nicht auf UTF8-ohne Boom steht, dann Konvertieren (selbes Menü)
    und in Datei am Anfang noch ein Kommentar einfügen, z.B.

    Code
    <? // UTF8-BOOM äöü
    
    
    ?>

    Hier sind nur die Umlaute entscheident, sie stellen nochmal sicher, dass UTF8-ohne Boom ausgewählt wird.


    edit: oh, sehe gerade der Thread ist etwas älter, aber dürfte wohl trotzdem interessieren, wenigstens, die Suchenden.

  • also mein problem besteht in diesem sinne auch noch...
    ich hatte wirklich alles auf utf-8, encoding, datei auch in utf-8 ohne bom gespeichert und ebenfalls die datenbank kollation auf utf-8 unicode_ci...
    jedoch hatte ich arge probleme, wahrscheinlich mit dem damn xampp unter windows.. denn nachdem ich es tatsächlich lokal zum laufen brachte(mit utf8-encode() und solch helferfunktionen von php), hab ich alles hochgeladen und hatte im nachhinein wieder enconding-probleme (der webserver läuft halt unter linux)

    kann ja mal jemand schreiben, wie das theoretisch funktionieren soll, also was man alles machen muss, damit man ganz problemlos schreiben kann und eben alles auf UTF-8 is

    bin mir nämlich fast schon sicher, dass windows einfach probs bereitet.. kann man xp pro auch auf utf-8 umstellen? so als standard-kodierung??

  • Bei mir klappt es immer so:

    PHP
    mysql_query('SET CHARACTER SET utf8');

    Natürlich auch:

    PHP
    header('content-type: text/html; characterset="utf-8"');


    Und die Metaangabe von oben.

    Viele liebe Grüße
    The User

  • ei danke jojo, das schreub ich mir später mal rein (bin grad erst aufgestanden)
    jedoch schreibt der gute mensch da ja was von mysql über kommandozeile starten..
    das wird lokal fruchten, jedoch wie soll ich so´n test denn mit meiner web-db machen??^^

  • du musst ja nicht zwingend alles nachtippen, was der gute da tippert. Er liefert ja die entsprechenden Ausgaben gleich mit.
    Aber die Problematik mit utf-8 sollte da klar werden, und du kannst seine Kette nachvollziehen, bei dir prüfen und nachbessern