Thread Zeichen geht verloren bei Ajax Request? (53 answers)
Opened by bianca at 2012-07-12 05:41

rosti
 2012-07-13 06:27
#159792 #159792
User since
2011-03-19
3194 Artikel
BenutzerIn
[Homepage]
user image
2012-07-13T01:51:27 bianca
2012-07-12T19:52:15 rosti
Und: Mit ISO oder UTF8 hat das überhaupt nichts zu tun, das '+' ist ein ASCII-Zeichen ;)

Habe mal ein Screenshot angehängt wie es aussieht, wenn ich statt escape() encodeURIComponent() verwende.
Klaro ist dann das Plus Problem gelöst aber das nützt mir nichts, weil dann die Umlaute nicht matchen.
Und ist das nicht UTF, was da ankommt?


Dein Screenshot zeigt die zwei Oktetten eines utf8 kodierten 'ü', das sind die Oktetten C3 und BC (Ã ¼). Genau diese würdest Du serverseitig mit CGI::param bekommen.

Zu Deinem P.: Die JavascriptFunktion escape() ist veraltet, sie unterscheidet NICHT zwischen URI und dessen Komponenten. Daher die Empfehlung, Ajax-Requests generell in UTF8 zu machen, da es heute die JS Funktionen encodeURI() und encodeURIComponent() gibt, die je nach Kontext entweder einen kompletten URI oder eine einzelne Komonente so kodieren, dass es auf der anderen Seite möglich ist, diese Kodierung wieder rückgängig zu machen.

Geschichte: Das Pluszeichen im URI bedeutete früher das Leerzeichen, es bedeutet heute auch noch das Leerzeichen aus Kompatibilitätsgründen. Der Vorgang des URL-Encodings wurde früher als Escape bezeichnet.

Viele Grüße!

View full thread Zeichen geht verloren bei Ajax Request?