Zeichensatz Problem mit AJAX
Olaf
- javascript
Hallo,
aus einem Formular-Memofeld wird der Textinhalt mit Javascript in einen String s gelesen und anschließend mit AJAX an ein PHP Script zur Weiterverarbeitung übergeben.
Vor der Übergabe wird s folgendermaßen codiert:
...
http_request.send(content="+encodeURIComponent(s));
...
Das funktioniert prima, solange keine Sonderzeichen verwendet werden. Bei Sonderzeichen, beispielsweise "ä ö ü" zerschiesst es mir den String.
Soll heissen: mit urldecode im PHP Script, an das s übergeben wurde, bekomme ich meine "ä" nicht mehr zurück. Scheinbar sind encodeURIComponent und urldecode nicht oder nicht mehr kompatibel.
Liegt es daran, dass AJAX UTF-8 verlangt? Hat jemand eine Idee, wie man die Sonderzeichen in meinem Fall kodieren und wieder richtig dekodieren kann?
Dank & Gruss
Olaf
hi,
Soll heissen: mit urldecode im PHP Script, an das s übergeben wurde, bekomme ich meine "ä" nicht mehr zurück. Scheinbar sind encodeURIComponent und urldecode nicht oder nicht mehr kompatibel.
Doch, dass sind sie weitgehend. Dein Problem liegt aber gar nicht auf deren Ebene - sie (de)kodieren Daten lediglich URL-gerecht.
Liegt es daran, dass AJAX UTF-8 verlangt?
Javascript verwendet intern immer UTF-8.
Hat jemand eine Idee, wie man die Sonderzeichen in meinem Fall kodieren und wieder richtig dekodieren kann?
Du hast die in UTF-8 kodierten Daten übergeben bekommen - wenn du kein UTF-8 willst, musst du das also wieder in eine andere Zeichenkodierung umwandeln.
Dass dabei ggf. Verluste auftreten können, sollte klar sein.
Besser wäre es, gleich überall konsequent auf UTF-8 zu setzen.
gruß,
wahsaga
Dass dabei ggf. Verluste auftreten können, sollte klar sein.
Besser wäre es, gleich überall konsequent auf UTF-8 zu setzen.
OK. Danke. Dann muss ich einfach sehen, dass ich konsequent bei UTF-8 bleibe.
Gruss, Olaf