Использование функций unicode () и encode () в Python
у меня проблема с кодировкой путь переменная и вставка ее в SQLite
3 ответа:
вы используете
encode("utf-8")
неправильно. В Python байт строки (str
type) имеют кодировку, Unicode - нет. Вы можете преобразовать строку Unicode в байтовую строку Python с помощьюuni.encode(encoding)
, и вы можете преобразовать строку байта в строку Юникода с помощьюs.decode(encoding)
(или, что эквивалентно,unicode(s, encoding)
).если
fullFilePath
иpath
в настоящее время astr
тип, вы должны выяснить, как они кодируются. Например, если текущая кодировка UTF-8, вы бы использование:path = path.decode('utf-8') fullFilePath = fullFilePath.decode('utf-8')
если это не исправить, фактическая проблема может заключаться в том, что вы не используете строку Unicode в своем
execute()
позвоните, попробуйте изменить его на следующее:cur.execute(u"update docs set path = :fullFilePath where path = :path", locals())