
Ich habe folgendes Problem: Ich möchte mit sqlalchemy Daten in meine MySQL Datenbank speichern. Die Daten sind beim Absenden der InsertExpression Unicode kodiert. Der Serverzeichensatz ist laut phpMyAdmin "UTF-8 Unicode (utf8)". Die Kollation meiner Tabelle ist "utf8-bin". Dennoch erhalte ich beim Ausführen der InsertExpressions folgenden Fehler:
Code: Alles auswählen
Traceback (most recent call last):
[...]
expr.execute()
File "C:\Python27\lib\site-packages\sqlalchemy-0.6.5-py2.7.egg\sqlalchemy\sql\expression.py", line 2510, in execute
return e._execute_clauseelement(self, multiparams, params)
File "C:\Python27\lib\site-packages\sqlalchemy-0.6.5-py2.7.egg\sqlalchemy\engine\base.py", line 1795, in _execute_clauseelement
return connection._execute_clauseelement(elem, multiparams, params)
File "C:\Python27\lib\site-packages\sqlalchemy-0.6.5-py2.7.egg\sqlalchemy\engine\base.py", line 1271, in _execute_clauseelement
return self.__execute_context(context)
File "C:\Python27\lib\site-packages\sqlalchemy-0.6.5-py2.7.egg\sqlalchemy\engine\base.py", line 1302, in __execute_context
context.parameters[0], context=context)
File "C:\Python27\lib\site-packages\sqlalchemy-0.6.5-py2.7.egg\sqlalchemy\engine\base.py", line 1394, in _cursor_execute
context)
File "C:\Python27\lib\site-packages\sqlalchemy-0.6.5-py2.7.egg\sqlalchemy\engine\default.py", line 299, in do_execute
cursor.execute(statement, parameters)
File "C:\Python27\lib\site-packages\mysql_python-1.2.3-py2.7-win32.egg\MySQLdb\cursors.py", line 159, in execute
query = query % db.literal(args)
File "C:\Python27\lib\site-packages\mysql_python-1.2.3-py2.7-win32.egg\MySQLdb\connections.py", line 264, in literal
return self.escape(o, self.encoders)
File "C:\Python27\lib\site-packages\mysql_python-1.2.3-py2.7-win32.egg\MySQLdb\connections.py", line 202, in unicode_literal
return db.literal(u.encode(unicode_literal.charset))
UnicodeEncodeError: 'latin-1' codec can't encode character u'\u2013' in position 33: ordinal not in range(256)
Viele Grüße,
microkernel