ich habe Probleme beim Inserten von Daten aus einem HTML-Formular in eine Datenbank, wenn dieses Formular Sonderzeichen enthaelt.
Ich moechte wie folgt erstmal die Struktur der Datenuebertragung darlegen, ansonsten koennte es zu Missverstaendnissen kommen:
Ein Webserver, dessen Zeichensatz in der Apache- und PHP-Config mit iso-8859-1 angegeben ist, empfaengt via PHP von einem HTML-Formular verschiedene Daten. Diese Daten werden von dem PHP-Script ueber eine XMLRPC-Verbindung an einen anderen Webserver gesendet, der den XMLRPC-Server auf Python-Basis darstellt.
Die dort empfangenen Daten sollen in eine MySQL-Datenbank (dort ist latin1, also auch iso-8859-1 als Charset angegeben) geschrieben werden.
Nun ist es aber so, dass genau beim Schreiben in die MySQL-Datenbank der Fehler auftritt:
Das passiert, wenn man den String mit Sonderzeichen nur als str() castet, oder mit diversen Zeichensaetzen (iso-8859-1, utf-8 ) versucht zu encoden. (auf der Python-Seite)UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128)
Auch wenn ich nichts mit diesem String mache und ihn so in die MySQL-Datenbank inserten moechte, funktioniert es leider nicht.
Wenn ich mir den String auf der Python-Konsole ausgebe, den ich uebergeben bekomme, sieht der auch nicht korrekt aus.
z.B.:
... was 'mörserrakete' darstellen soll.mörserrakete
Weiss jemand, was da schief laeuft?
vielen Dank,
Patrick