Habe folgende Tabelle
CREATE TABLE `tablename` (
`name` varchar(3) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1
INSERT INTO `tablename` VALUES ('—');
Versuche nun folgendes
Code: Alles auswählen
#!/usr/bin/python
# -*- coding: utf-8 -*-
import MySQLdb
c=MySQLdb.connect("localhost","user","passwort","databank").cursor()
c.execute("Select name from tablename")
name=c.fetchone()[0]
print type(name)
# ergibt: <type 'str'>
sql="Select '%s'" % (name)
print sql
# ergibt: Select '—'
# ACHTUNG: Dies ist ein langer Gedankenstrich
c.execute(sql)
Traceback (most recent call last):
File "/home/ceb/temp/test.py", line 13, in <module>
c.execute(sql)
File "/usr/lib/python2.5/site-packages/MySQLdb/cursors.py", line 146, in execute
query = query.encode(charset)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 8: ordinal not in range(128)
Wie muss man decoden um das SQL statement ausführen zu können? Oder ist das ein ganz anderes Probelm was ich bisher übersehen habe?
Schon mal vielen Dank im voraus
Gruss
ebel