Udo: Ajax und Umlaute

Ich versuche per Ajax ein Update in einer MySQL-Tabelle zu machen. Funktioniert auch problemlos, allerdings werden die Umlaute durch andere, mir unbekannte Zeichen ersetzt. Kennt jemand das Problem?
Als Charset habe ich utf8, sollte ja eigentlich kein Problem sein. Hab aber zur Sicherheit auch schon andere Charsets ausprobiert.

Gruß
Udo

  1. Ääääh....
    Wo werden die Umlaute komisch dargestellt? In der Datenbanktabelle oder aus ihr heraus?
    Nebenbei: Ich habe bei meinen Progrämmchen das Problem, daß mit PHP in eine DB eingefügte Werte in phpmyadmin komisch aussehen, das Script aber damit tadellos funktioniert. Beim per-hand-einsetzen von Werten über phpmyadmin allerdings wird es genau umgekehrt nur dort richtig, überall anders allerdings falsch angezeigt.
    Also denke ich, Phpmyadmin geht mit der utf-8-Unterstützung nicht richtig um und stör mich einfach nicht weiter dran :-D

    1. Ääääh....
      Wo werden die Umlaute komisch dargestellt? In der Datenbanktabelle oder aus ihr heraus?
      Nebenbei: Ich habe bei meinen Progrämmchen das Problem, daß mit PHP in eine DB eingefügte Werte in phpmyadmin komisch aussehen, das Script aber damit tadellos funktioniert. Beim per-hand-einsetzen von Werten über phpmyadmin allerdings wird es genau umgekehrt nur dort richtig, überall anders allerdings falsch angezeigt.
      Also denke ich, Phpmyadmin geht mit der utf-8-Unterstützung nicht richtig um und stör mich einfach nicht weiter dran :-D

      Nö, sieht leider auch im MySQL Query Browser so aus :-(

  2. hi,

    Ich versuche per Ajax ein Update in einer MySQL-Tabelle zu machen. Funktioniert auch problemlos, allerdings werden die Umlaute durch andere, mir unbekannte Zeichen ersetzt.

    Woher kommen die Daten, die du mit AJAX übertragen willst?
    Hast du sie URL-gerecht kodiert?

    gruß,
    wahsaga

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

      Ich versuche per Ajax ein Update in einer MySQL-Tabelle zu machen. Funktioniert auch problemlos, allerdings werden die Umlaute durch andere, mir unbekannte Zeichen ersetzt.

      Woher kommen die Daten, die du mit AJAX übertragen willst?

      Aus einem Textfeld

      Hast du sie URL-gerecht kodiert?

      Ja, mit urlencode.

      gruß,
      wahsaga

  3. Hallo,

    Ich versuche per Ajax ein Update in einer MySQL-Tabelle zu machen. Funktioniert auch problemlos, allerdings werden die Umlaute durch andere, mir unbekannte Zeichen ersetzt. Kennt jemand das Problem?

    Wo siehst Du denn diese Zeichen? In phpMyAdmin?
    Dort mußt Du ggf. noch die Anzeige auf UTF-8 umstellen.

    Grundsätzlich ist Deine Entscheidung für UTF-8 völlig in Ordnung und sinnvoll. Du mußt nur dafür sorgen, daß es von _allen_ Komponenten Deiner Anwendung benutzt wird.

    Ciao,
    Andreas

    --
    "Das Corporate Design für das Internet sieht eine Reihe von Grafikelementen vor, die die Optik der Webseite visuell und funktionell beeinflussen." - (Zitat aus dem "Styleguide Corporate Design"  eines großen Konzerns...)
    1. Hallo,

      Ich versuche per Ajax ein Update in einer MySQL-Tabelle zu machen. Funktioniert auch problemlos, allerdings werden die Umlaute durch andere, mir unbekannte Zeichen ersetzt. Kennt jemand das Problem?

      Wo siehst Du denn diese Zeichen? In phpMyAdmin?
      Dort mußt Du ggf. noch die Anzeige auf UTF-8 umstellen.

      Hab ich umgestellt. Sieht aber auch im MySQL Query Browser so aus.

      Grundsätzlich ist Deine Entscheidung für UTF-8 völlig in Ordnung und sinnvoll. Du mußt nur dafür sorgen, daß es von _allen_ Komponenten Deiner Anwendung benutzt wird.

      Hab ich.

      Ciao,
      Andreas

  4. Ich versuche per Ajax ein Update in einer MySQL-Tabelle zu machen. Funktioniert auch problemlos, allerdings werden die Umlaute durch andere, mir unbekannte Zeichen ersetzt. Kennt jemand das Problem?
    Als Charset habe ich utf8, sollte ja eigentlich kein Problem sein. Hab aber zur Sicherheit auch schon andere Charsets ausprobiert.

    Gruß
    Udo

    Ach ja, wundert Euch nicht: Udo und ich sind Arbeitskollegen.

    Gruß
    Andi

  5. echo $begrüßung;

    Ich versuche per Ajax ein Update in einer MySQL-Tabelle zu machen. Funktioniert auch problemlos, allerdings werden die Umlaute durch andere, mir unbekannte Zeichen ersetzt. Kennt jemand das Problem?
    Als Charset habe ich utf8, sollte ja eigentlich kein Problem sein. Hab aber zur Sicherheit auch schon andere Charsets ausprobiert.

    Welche Version hat der MySQL-Server? Wenn sie größer oder gleich 4.1 ist: Welche Kodierung erwartet der Server auf der Verbindung (character_set_connection)? Welche sendest du ihm?

    echo "$verabschiedung $name";

    1. Hallo!

      Welche Version hat der MySQL-Server? Wenn sie größer oder gleich 4.1 ist: Welche Kodierung erwartet der Server auf der Verbindung (character_set_connection)?

      utf8

      Welche sendest du ihm?

      Interessante Frage! Gegenfrage: wie sage ich es dem XMLHttpRequest?

      echo "$verabschiedung $name";

      1. echo $begrüßung;

        Welche [Kodierung] sendest du ihm?
        Interessante Frage! Gegenfrage: wie sage ich es dem XMLHttpRequest?

        Ich nehme an, du musst dem Browser mitteilen, dass er eine bestimmte Kodierung verwenden soll. Im Allgemeinen macht er das, wenn man die Seite in der gewünschten Kodierung erstellt, und dem Browser das durch geeignete Angaben mitteilt (HTTP-Header, Meta-Element).

        Wie stellst du eigentlich fest, dass die Umlaute "verloren gehen"? phpMyAdmin weiß, wie es mit einem MySQL-Server zu reden hat, damit dabei kein Zeichenverlust auftritt. Wenn mit phpMyAdmin Zeichen nicht richtig angezeigt werden, ist irgendwo anders was schief gelaufen.

        echo "$verabschiedung $name";

        1. Hallo!

          echo $begrüßung;

          Welche [Kodierung] sendest du ihm?
          Interessante Frage! Gegenfrage: wie sage ich es dem XMLHttpRequest?

          Ich nehme an, du musst dem Browser mitteilen, dass er eine bestimmte Kodierung verwenden soll. Im Allgemeinen macht er das, wenn man die Seite in der gewünschten Kodierung erstellt, und dem Browser das durch geeignete Angaben mitteilt (HTTP-Header, Meta-Element).

          Prima, probier ich gleich mal.

          Wie stellst du eigentlich fest, dass die Umlaute "verloren gehen"? phpMyAdmin weiß, wie es mit einem MySQL-Server zu reden hat, damit dabei kein Zeichenverlust auftritt. Wenn mit phpMyAdmin Zeichen nicht richtig angezeigt werden, ist irgendwo anders was schief gelaufen.

          Hab ich nie gesagt. phpMyAdmin macht seine Sache wie immer gut.
          Festgestellt habe ich es, indem ich im serveseitigen Script einfach mal ein echo für den responseText zurückgegeben habe. Mit MySQL hat das Problem also erstmal nichts zu tun.

          echo "$verabschiedung $name";

          Gruß
          Andi

          1. Tatsächlich!

            Es war die Codierung der Webseite selber! Einfach auf UTF-8 und alles wurde gut...
            Ihr seid einfach so gut zu mir :-)

            Gruß
            Andi

  6. Hi,

    Ich versuche per Ajax ein Update in einer MySQL-Tabelle zu machen. Funktioniert auch problemlos, allerdings werden die Umlaute durch andere, mir unbekannte Zeichen ersetzt. Kennt jemand das Problem?

    Wie sehen die Rohdaten aus (welche Codierung)?
    Wie sehen die Daten aus, die beim serverseitigen Script ankommen (welche Codierung)?
    Wie sehen die Daten aus, die in der Datenbank landen (welche Codierung)?

    An der Stelle, wo sich die Daten zu ändern scheinen, mußt Du angreifen, ggf. eine Umcodierung vornehmen.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    Schreinerei Waechter
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. Hi,

      Ich versuche per Ajax ein Update in einer MySQL-Tabelle zu machen. Funktioniert auch problemlos, allerdings werden die Umlaute durch andere, mir unbekannte Zeichen ersetzt. Kennt jemand das Problem?

      Wie sehen die Rohdaten aus (welche Codierung)?
      Wie sehen die Daten aus, die beim serverseitigen Script ankommen (welche Codierung)?
      Wie sehen die Daten aus, die in der Datenbank landen (welche Codierung)?

      An der Stelle, wo sich die Daten zu ändern scheinen, mußt Du angreifen, ggf. eine Umcodierung vornehmen.

      Ja, sieht wohl so aus, als dass die Daten schon falsch beim serverseitige Skript ankommen. Allerdings wüsste ich nicht, wie ich das per JS ändern sollte.

      cu,
      Andreas