You are using encode("utf-8")
incorrectly. Python byte strings (str
type) have an encoding, Unicode does not. You can convert a Unicode string to a Python byte string using uni.encode(encoding)
, and you can convert a byte string to a Unicode string using s.decode(encoding)
(or equivalently, unicode(s, encoding)
).
If fullFilePath
and path
are currently a str
type, you should figure out how they are encoded. For example, if the current encoding is utf-8, you would use:
path = path.decode('utf-8')
fullFilePath = fullFilePath.decode('utf-8')
If this doesn't fix it, the actual issue may be that you are not using a Unicode string in your execute()
call, try changing it to the following:
cur.execute(u"update docs set path = :fullFilePath where path = :path", locals())