您使用encode("utf-8")
不正确。Python字节字符串(str
类型)具有编码,而Unicode没有。您可以使用将Unicode字符串转换为Python字节字符串uni.encode(encoding)
,也可以使用s.decode(encoding)
(或等效于unicode(s, encoding)
)将字节字符串转换为Unicode字符串。
如果fullFilePath
和path
当前是str
类型,则应该弄清楚它们是如何编码的。例如,如果当前编码为utf-8,则可以使用:
path = path.decode('utf-8')
fullFilePath = fullFilePath.decode('utf-8')
如果这不能解决问题,则实际的问题可能是您未在execute()
呼叫中使用Unicode字符串,请尝试将其更改为以下内容:
cur.execute(u"update docs set path = :fullFilePath where path = :path", locals())