Python 3.4,字节' \ x93'的解码错误

时间:2016-11-25 12:44:57

标签: python mysql python-2.7 python-3.4

我只是将二进制模式的文件读入缓冲区,在该缓冲区上执行一些替换,然后将缓冲的数据插入MySQL数据库。无论编码标准如何,都插入了每个字节。我使用python 2.7,效果很好。

代码:

with open(binfile,'rb') as fd_bin:
   bin_data = fd_bin.read()
   bin_data = bin_data.replace('"','\\"')
   db_cursor.execute("INSERT INTO table BIN_DATA values {}".format(bin_data))

当我使用python 3.4版本时,需要对其进行解码,因此我使用了:

   bin_data = fd_bin.read()
   bin_data = bin_data.decode('utf-8') # error at this line

提到的第二行产生错误:

bindata = bindata.decode('utf-8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x93 in position 1:invalid
start byte

我使用了latin-1iso-8859-1解码方案,但是它们在某些地方插入了一些额外的字节。当我从数据库中获取数据时,数据在这种情况下并不相同,但它适用于python 2.7版本。

无论编码方案如何,我如何插入数据或解码数据?我无法跳过或忽略这些字节。

0 个答案:

没有答案