Ajax und Umlaute
Udo
- javascript
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
Ääää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
Ääää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 :-(
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
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
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
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
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
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";
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";
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";
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
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
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
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