HighDots Forums  

Encoding Problem

Javascript (German) Programmiersprache JavaScript. (de.comp.lang.javascript)


Discuss Encoding Problem in the Javascript (German) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Torsten Robitzki
 
Posts: n/a

Default Encoding Problem - 04-04-2007 , 02:36 PM






Hallo,
wahrscheinlich kommt diese Frage etwas häufiger vor. Ich habe eine
Applikation, in der der JavaScript Client (Browser) mit einem aynchronen
HTTP-Request (Methode = 'post'; implementiert in Prototype.js)
Foreneinträge an einen Server schickt. Das klappt so weit auch ganz gut,
bis die ersten Einträge mit einem Semikolon ( an den Server gesendet
wurden. Dabei werden wohl alle hinter dem ';' stehenden Parameter
verworfen. Nun dachte ich mir, escape ich die Parameter client-seitig
mit der escape() Funktion. Klappt auch wunderbar, mit dem Semikolon,
leider funktioniert es nun nicht mehr mit den Umlauten, die vorher
wunderbar funktioniert haben. Ich habe jetzt den Verdacht, das die
escape()-Funktion nicht so arbeitet, wie ich mir das erhoffen würde.
Meine Lösung wäre jetzt, alle Zeichen in "!*'();:@&=+$,/?%#[]" selbst in
%21 etc. umzusetzen. Kann aber nicht wirklich glauben, das ich der erste
bin, der über das Problem stolpert.

Hat jemand eine bessere Idee?

mfg Torsten


Reply With Quote
  #2  
Old   
Martin Honnen
 
Posts: n/a

Default Re: Encoding Problem - 04-05-2007 , 06:51 AM






Torsten Robitzki wrote:

Quote:
wahrscheinlich kommt diese Frage etwas häufiger vor. Ich habe eine
Applikation, in der der JavaScript Client (Browser) mit einem aynchronen
HTTP-Request (Methode = 'post'; implementiert in Prototype.js)
Foreneinträge an einen Server schickt. Das klappt so weit auch ganz gut,
bis die ersten Einträge mit einem Semikolon ( an den Server gesendet
wurden. Dabei werden wohl alle hinter dem ';' stehenden Parameter
verworfen. Nun dachte ich mir, escape ich die Parameter client-seitig
mit der escape() Funktion. Klappt auch wunderbar, mit dem Semikolon,
leider funktioniert es nun nicht mehr mit den Umlauten, die vorher
wunderbar funktioniert haben. Ich habe jetzt den Verdacht, das die
escape()-Funktion nicht so arbeitet, wie ich mir das erhoffen würde.
Meine Lösung wäre jetzt, alle Zeichen in "!*'();:@&=+$,/?%#[]" selbst in
%21 etc. umzusetzen. Kann aber nicht wirklich glauben, das ich der erste
bin, der über das Problem stolpert.
Was genau willst du an der Server senden, wie willst du kodieren, als
application/x-www-form-urlencoded, als application/xml oder text/xml,
als JSON?
Fuer application/x-www-form-urlencoded kannst du
encodeURIComponent
verwenden, also etwa
xmlhttp.send('arg1=' + encodeURIComponent('Jürgen;Jörg;'))
auf dem Server musst du beachten, das die Kodierung als
application/x-www-form-urlencoded, aber mit charset=UTF-8 erfolgt ist
und entsprechend ausgewertet werden muss.


--

Martin Honnen
http://JavaScript.FAQTs.com/


Reply With Quote
  #3  
Old   
Torsten Robitzki
 
Posts: n/a

Default Re: Encoding Problem - 04-05-2007 , 07:02 AM



Hallo Martin,

Martin Honnen wrote:

Quote:
Was genau willst du an der Server senden, wie willst du kodieren, als
application/x-www-form-urlencoded, als application/xml oder text/xml,
als JSON?
ersteres

Quote:
Fuer application/x-www-form-urlencoded kannst du
encodeURIComponent
verwenden, also etwa
xmlhttp.send('arg1=' + encodeURIComponent('Jürgen;Jörg;'))
auf dem Server musst du beachten, das die Kodierung als
application/x-www-form-urlencoded, aber mit charset=UTF-8 erfolgt ist
und entsprechend ausgewertet werden muss.
Auf dem Server werden die Bytes eigentlich nur herumgereicht und kommen
dann später wieder auf dem Client an.

Das klapt prima, Danke!

mfg Torsten



Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.