pysqlite2: ProgrammingError - Vous ne devez pas utiliser de bytestings 8 bits

Je suis actuellement à la persistance des noms de fichier dans une base de données sqlite pour mes propres fins. Chaque fois que j'essaie d'insérer un fichier qui a un caractère spécial (comme é, etc.), il met l'erreur suivante:

pysqlite2.dbapi2.ProgrammingError: You must not use 8-bit bytestrings unless you use a text_factory that can interpret 8-bit bytestrings (like text_factory = str). It is highly recommended that you instead just switch your application to Unicode strings.

Quand je fais "passer mon application sur des chaînes Unicode" par emballage de la valeur envoyée à pysqlite avec l'unicode méthode comme: unicode(filename)il met cette erreur:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 66: ordinal not in range(128)

Il ya quelque chose que je peux faire pour me débarrasser de cela? La modification de l'ensemble de mes fichiers afin de se conformer n'est pas une option.

Mise à JOUR
Si je décoder le texte via filename.decode("utf-8"), je suis encore en train de la ProgrammingError ci-dessus.

Mon code ressemble à ceci:

cursor.execute("select * from musiclibrary where absolutepath = ?;",
    [filename.decode("utf-8")])

Ce que mon code ici?

source d'informationauteur Naftuli Kay