В настоящее время я сохраняю имена файлов в базе данных sqlite для своих целей. Всякий раз, когда я пытаюсь вставить файл с особым символом (например, é и т.д.), Он выдает следующую ошибку:
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.
Когда я "переключу свое приложение на строки Unicode", обернув значение, отправленное pysqlite, с помощью метода unicode, например: unicode(filename)
, он выдает эту ошибку:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 66: ordinal not in range(128)
Есть ли что-то, что я могу сделать, чтобы избавиться от этого? Изменение всех моих файлов для соответствия не является вариантом.
UPDATE
Если я декодирую текст через filename.decode("utf-8")
, я все равно получаю Программирование выше.
Мой фактический код выглядит следующим образом:
cursor.execute("select * from musiclibrary where absolutepath = ?;",
[filename.decode("utf-8")])
Какой должен выглядеть мой код?