Olaf: Zeichensatz Problem mit AJAX

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

  1. 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

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. 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