Umlaute und Sonderzeichen bei REST Aufrufen mit JavaScript immer enkodieren
Kleiner JavaScript Tipp über den ich gerade gestolpert bin. Möchte man in REST Aufrufen Umlaute oder Sonderzeichen (wie z.B. # oder |) mit als Parameter übergeben müssen diese vorher enkodiert werden. Dazu dient dient die JavaScript Funktion encodeURIComponent().
Soll z.B. der String “Sonderzeichen ‘#@_ö’ und hier weiterer Text.” in einem Request mit an einen Server übergeben werden und enkodiert den Text nicht kommt beim Server lediglich “Sonderzeichen ‘” an. Der String wird bei dem ersten reservierten oder unbekannten Sonderzeichen, in diesem Beispiel die Raute (#) abgeschnitten.
Verwendet man dagegen die JavaScript Methode encodeURIComponent() wird der String wie folgt enkodiert: “Sonderzeichen%20′%23%40_%C3%B6′%20und%20hier%20weiterer%20Text.”
Mit dieser Enkodierung kommt der Text wie gewünscht beim Server an.
Wen das interessiert oder auch über das Problem gestolpert ist sollte sich auch noch die entsprechende Doku bei SelfHtml anschauen.
