我使用Python 3.5 +库fdb完成此任务。我的脚本:
import fdb
con = fdb.connect(
host='host', database='database',
user='IAKUZNETSOV', password='111111'
)
cur = con.cursor()
cur.execute("select DATA from ATTACHMENTS where OID = '6512165313'")
fileToSave= cur.fetchone()[0]
with open('c:\python5.jpg', 'wb') as f:
f.write(fileToSave)
尝试保存文件后,我收到错误:
UnicodeDecodeError: 'charmap' codec不能解码字节0x98的位置578:字符映射到
数据库编码字段:Win-1251类型:Blob
我该如何修复它?
出现此错误是因为blob字段的子类型为1(text)。
子类型有:
0 -二进制数据(图像、视频、音频等)
1 - text(基本字符函数)
2 - BLR(用于定义Firebird过程、触发器等)
用户应用程序应该只使用子类型0和1。
如果您不能将subtype更改为0,您可以尝试将数据转换为原始字节到客户端应用程序