如何通过Python 3.5从Firebird 2.5获取pdf/jpg文件



我使用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,您可以尝试将数据转换为原始字节到客户端应用程序

最新更新