Kodierungsproblem bei AJAX-Request

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Kodierungsproblem bei AJAX-Request

    Hallo zusammen,

    auf meiner HTML-Seite sieht es so aus:

    PHP-Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
    >
    <
    html xmlns="http://www.w3.org/1999/xhtml">
    <
    head>
    <
    meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    ...
    <
    form onSubmit="performSearch('name'); return false;" id="therapyForm">
    <
    input type="text" name="name" id="name">
    </
    form
    In der JS-Datei so:
    PHP-Code:
    function performSearch (orderBy) {
     var 
    opt = {method"post",
              
    postBody"orderBy=" orderBy "&" Form.serialize("therapyForm"),
              
    onSuccess: function(t) {
                 $(
    "searchResults").innerHTML t.responseText;
            }
        }
    new 
    Ajax.Request("test.php"opt);

    Die test.php sieht dann so aus:

    PHP-Code:
    header('Content-Type: text/html; charset=ISO-8859-1');
    print_r ($_POST); 
    Das Problem ist jetzt, dass Sonderzeichen, die ich in mein Formular eingebe, in der php-Datei falsch kodiert ausgegeben werden, also ein ö z.B. als ö. Wo liegt der Fehler? Die Seiten sind doch beide gleich kodiert?

    VIELEN DANK!

    strauberry

  • #2
    hat keiner eine Idee Hab schon soviel rumprobiert, aber nichts bringt was...

    Kommentar


    • #3
      Stress nicht so
      ist die datei selbst auch iso?
      MfG
      aim
      Lies mich jetzt!
      - OT-Tags-Liebhaber und BB-Code-Einrücker -

      Kommentar


      • #4
        damn doppelpost, sry
        MfG
        aim
        Lies mich jetzt!
        - OT-Tags-Liebhaber und BB-Code-Einrücker -

        Kommentar


        • #5
          Javascript nutzt intern immer UTF-8 ...
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Was ist denn das für ein Framework das du nutzt? Bei Prototype z.B. kann man die Kodierung verstellen.

            http://www.prototypejs.org/api/ajax/options
            ich glaube

            Kommentar


            • #7
              Sehr geil, vielen Dank für die Tipps!!!
              Ich hab meine Kodierung überall auf UTF-8 geändert, weil das Ändern der Kodierung vom prototype nicht so recht geklappt hat. Vielleicht muss man auch "latin-1" oder "iso-latin-1" oder sowas nehmen...

              Leider funzt es immer noch nicht. Alle Dateien sind UTF-8, die Header-Infos werden auf UTF-8 gesetzt, die DB ist utf8_general_ci kodiert... und er findet bei Sonderzeichen in der Suchanfrage nichts bzw. wenn ich das Query ausgeben lasse und direkt in phpMyAdmin aufrufe, dann findet er was, in meinem Script aber nicht... kann man die Verbindung zur DB auch irgendwie noch anders kodieren?
              Zuletzt geändert von strauberry; 15.06.2007, 08:59.

              Kommentar


              • #8
                kann man die Verbindung zur DB auch irgendwie noch anders kodieren?
                http://dev.mysql.com/doc/refman/5.1/...onnection.html
                Onlie Browsergame: http://www.war-of-empire.de <-- 2. Weltkrieg

                Kommentar


                • #9
                  Bei Prototype steht ja irgendwie auch dabei, dass man möglichst die Finger davon lassen soll...

                  Versuchs mal mit SET NAMES.
                  http://dev.mysql.com/doc/refman/5.1/...onnection.html

                  Ansonsten als Würgaround utf8_decode() bzw. utf8_encode() in der Datenbankklasse anwenden.

                  Edit: Diese Seite erklärt ganz praktisch alle (?) Schritte um alles auf UTF-8 umzustellen: http://www.ajax-community.de/problem...ichensatz.html
                  Zuletzt geändert von ministry; 15.06.2007, 10:20.
                  ich glaube

                  Kommentar


                  • #10
                    accept-charset hab ich noch nie gebraucht, und es fehlt die DB.
                    Das man bei utf8 nicht mehr die normalen Stringfunktionen benutzen darf, steht da glaub ich auch nicht (ich hab nur die Überschriften überflogen~)

                    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                    Wie man Fragen richtig stellt

                    Kommentar


                    • #11
                      PHP-Code:
                      header("Content-Type: text/html; charset=UTF-8"); 
                      In den Kopf der Datei, die den Content deines Ajax-Requests liefert. Natürlich mut content-type und charset entsprechend deinem Inhalt angepasst werden.

                      Kommentar


                      • #12
                        PHP-Code:
                        mysql_query ("SET NAMES 'utf8'"); 
                        Damit läuft jetzt alles!!


                        DANKE!!!

                        Kommentar


                        • #13
                          header("Content-Type: text/html; charset=ISO-8859-1");

                          diese Code habe ich benutzt und hat sehr sehr gut geklappt

                          Danke!

                          Kommentar

                          Lädt...
                          X