phps formatieren. AJAX UTF-8 Problem

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • phps formatieren. AJAX UTF-8 Problem

    Mahlzeit @ all,

    ich hab ein kleines problem mit der zeichenkodierung einer phps datei.

    wenn ich die datei normal über die url aufrufe werden alle umlaute und sonderzeichen korrekt dargestellt (wie üblich bei phps)

    aber wenn ich die gleiche datei per ajax und file_get_contents() anzeigen lassen will
    werden die umlaute und sonderzeichen wieder im utf8 format angezeigt (also in der form: sp�ter, nat�rlich, etc)

    kann ich in die phps datei nen header setzen der die zeichenkodierung korrigiert ?

    habs auch mit fpassthru() bzw readfile() probiert, klappt leider nicht ganz wegen ajax :-/

    jemand ne idee?

    thx & mfg da BendIt
    .:Reden Ist Schweigen und Silber Ist Gold:.

    real programmers don't comment their code: if it was hard to write, it should be hard to read!
  • Das ist ganz normal, wenn du verschiedene Zeichensätze verwendest.
    AJAX sendet immer über UTF-8
    http://de.wikipedia.org/wiki/AJaX#Probleme_durch_die_UTF-8-Zeichenkodierung

    Wenn du die Daten aus einer Datenbank erhältst kannst du sie vorab mit utf8_encode kodieren. Ansonsten musst du sie in entities umschreiben (oder eben den Zeichensatz ändern)
  • sehr schön, thx :)

    habs jetzt mit utf8_decode() gemacht und funzt wie gewünscht ;)

    thx nochma

    mfg da BendIt

    //edit

    naja zumindest fast... die zeichen werden zwar nicht mehr so kryptisch dargestellt, allerdings mit nem ? :(

    -> sp?r nat?ch
    -> orginal: später natürlich


    Jemand ne Idee? :)
    .:Reden Ist Schweigen und Silber Ist Gold:.

    real programmers don't comment their code: if it was hard to write, it should be hard to read!
  • "BendIt" schrieb:

    sehr schön, thx :)

    habs jetzt mit utf8_decode() gemacht und funzt wie gewünscht ;)

    //edit

    -> sp?r nat?ch
    -> orginal: später natürlich


    Um das Problem wirklich lösen zu können, müssten wir wissen, wie deine Datenbank codiert ist, wie ist Deine "Ajax"-Seite codiert und wie ist die Seite codiert in die das Ajax-Ergebnis eingefügt wird.

    Wo machst Du denn das utf8_decode()? Beim Einfügen der Daten aus der DB in die Ajax-Seite? Wenn ja, dann mach dort mal ein utf8_encode().

    70abc
  • hallo,

    wie ich in meinem ersten posting schon geschrieben hab, geht es nicht um daten die aus einer DB kommen, das wäre ja auch kein problem. Es geht um eine *.phps Datei die bei mir auf dem Server liegt.

    Die Seite ist im ISO-8859-1 charset codiert.

    es werden einfach nur die *.phps Dateien per file_get_contents() in einen String "eingelesen" und per AJAX in ein div "geladen"

    Wenn man die *.phps Dateien über die URL aufruft werden die ganz normal dargestellt. nur beim reinladen in das div werden die umlaute durch symbole dargestellt. das ist das ganze problem. deshalb wollte ich auch wissen ob man in der *.phps Datei eine art Header mit entsprechender Zeichencodierung festlegen kann.

    Wenn ja, dann mach dort mal ein utf8_encode().


    in wie fern soll mir das helfen? ich möchte ja eben keine UTF-8 kodierung haben^^

    zu sehen ist die ganze sache unter

    http://ronnytiebel.de

    ->Code
    -> PHP

    und dann in der mitte auf einen der beiden Links klicken

    Die orginal Dateien kann man sich anschauen wenn man in dem div auf einen der beiden Links klickt die ganz oben und ganz unten stehen -> Source anzeigen

    btw: das decode_utf8 hab ich wieder entfernt, da man ohne wenigstens in etwa sehen kann um welchen umlaut es sicht handelt...

    thx & mfg da BendIt
    .:Reden Ist Schweigen und Silber Ist Gold:.

    real programmers don't comment their code: if it was hard to write, it should be hard to read!
  • "BendIt" schrieb:


    wie ich in meinem ersten posting schon geschrieben hab, geht es nicht um daten die aus einer DB kommen, das wäre ja auch kein problem. Es geht um eine *.phps Datei die bei mir auf dem Server liegt.
    Die Seite ist im ISO-8859-1 charset codiert.

    es werden einfach nur die *.phps Dateien per file_get_contents() in einen String "eingelesen" und per AJAX in ein div "geladen"


    Was nichts am eigentlichen Problem ändert. Wo die Daten her kommen ist doch egal. Du fügst ISO-8859-1 Codierte Daten in ein UTF-8 codiertes Textdokument (Deine Ajax-Seite) ein.

    Also wenn Du die Daten beim Einfügen in Deine Ajax-Seite UTF-8 codierst sollte das Problem behoben sein.

    Nochmal zum Verständnis:
    Das Ergebniss eines Ajax-Aufrufes ist UTF-8 codiert. Wenn Du jetzt in dieses Ergbenis Daten einfügst (aus einer Datei oder DB) dann müssen diese Daten auch UTF-8 codiert sein.

    Aber vielleicht postest Du mal den Code-Teil, wo Du die Datei in einen String einliest und in das "div" lädst, dann kann man Dir evtl. besser helfen...

    70abc
  • "BendIt" schrieb:


    thx nochma^^


    Kein Problem. Noch ein kleiner Hinweis zu Deiner Seite:
    Wenn so ein Div sichtbar ist in dem der Code dargestellt wird und man wechselt dann in der Hauptnavigation, dann sollte meiner Meinung nach das div ausgeblendet werden.

    Momentan öffnest Du dann nur das "blaue Div" mit den Links, was eine Teil des "Code-Divs" überlagert, und das sieht irgendwie nicht so toll aus. ;)

    70abc
    We raise hopes, here ... until they're old enough to fend for themselves.
    - Mike Callahan