Ajax, MySql, Javascript
Es war heute nicht mein Tag, die oben beschriebene Kombination gab mir fast den Rest.
Aber alles von vorne. Ich habe ein Formular, welches Daten per Ajax in eine MySql-Datenbank speichert. Die Webseite läut unter UTF-8 und die Datenbank auch. Mein erstes Problem war, wenn jemand ein Fragezeichen im Formular eingegeben hat wurden die Daten nicht in die Datenbank geschrieben.
Die Ursache war schnell erkannt, ein Fragezeichen terminiert die Parameter des Requests, so dass bei der Verarbeitung ein leerer string übergeben wurde.
Für etwas gibt es ja in Javascript urlencode, jedoch hat dies nicht geholfen (da ein Fragezeichen irgendwie nicht umgewandelt wird bei einer UTF8 Webseite), nach ein paar Minuten suchen, fand ich dann die Lösung encodeURIComponent. Mit encodeURIComponent wird auch UTF8 kodiert.
Der Rest war dann noch ein bisschen encode und decode um das ganze in die Datenbank zu speichern und auszulesen.
Auf jedenfall hab ich heute wieder etwas gelernt, was ja auch nicht schlecht ist. Wer es noch genauer wissen möchte ist auf der Seite des Core Javascripts [1] gut aufgehoben
Quelle
- [1] http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference:Functions:encodeURIComponent