Ich habe gerade meine erste Ajax-Funktion mit jQuery erstellt, die tatsächlich funktioniert, aber leider die Zeichencodierung (für Zeichen wie ä, ö, ü, ß, č, ć, å , ø) ist ein Albtraum.jQuery: AJAX Umlaute & Sonderzeichen sind ein Chaos
Meine Dateien und meine Datenbank sind alle UTF-8. Ich habe eine Vielzahl von Optionen in der Ajax-Funktion und der PHP-Funktion ausprobiert, von denen keine zufriedenstellend war.
Das ist mein Ajax
var dataString = {
'name': name,
'mail': mail
// other stuff
}
$.ajax({
type: "POST",
url: "/post.php",
data: dataString,
contentType: "application/x-www-form-urlencoded;charset=UTF-8",
cache: false,
success: function(html){
// do stuff
}
Ich habe versucht, es ohne content: "application/x-www-form-urlencoded; charset = UTF-8" und ich habe versucht, die betroffenen Daten zu wickeln in encodeURIComponent(), von denen keiner gearbeitet hat.
Wenn ich, dass AJAX mit htmlentities() in meinem php, meine Umlaute im Klartext wie folgt aussehen: UE Ã, AE Ã, OE Ã, ue ü, ae å¤, oe o
und wie diese in der Datenbank: UE & Atilde; œ, AE & Atilde; „, OE & Atilde ;, ue & Atilde; & frac14 ;, ae & Atilde; & curren ;, oe o
Wenn ich nicht htmlentities() aber mysql_real_escape_string() stattdessen (oder keine), sie sehen gut aus im Klartext, aber sie sehen in der Datenbank so aus: AE à ", OE Ãœ, Ãœ à à à à à Ãà Ãe Ãœ Ãue
Ich habe schon seit Stunden unzählige Optionen getestet, aber ich kann keine Lösung finden, die funktioniert. Bisher scheint die einzige Option, die ich zu haben scheint, darin zu bestehen, dass sie in der Datenbank total durcheinander ist, aber das wäre sehr kontraproduktiv, wenn diese Datensätze bearbeitet werden müssten.
Schlägt nicht Ihre letzte Beobachtung vor, dass das Problem wahrscheinlich mit der Datenbank (und vielleicht PHP) und nicht mit jQuery und AJAX ist? –
Ich habe versucht, meine Datenbank-Codierung zu Latin1 zu ändern, aber es gab keinen Unterschied – rayne