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

如何通过Python 3.5从Firebird 2.5获取pdf/jpg文件?,python,blob,firebird,fdb,Python,Blob,Firebird,Fdb,我使用Python3.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.fet

我使用Python3.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”编解码器无法解码位置中的字节0x98 578:角色映射到

数据库中的编码字段:Win-1251类型:Blob


如何修复它?

发生此错误的原因是blob字段的子类型1(文本)

这些措施包括:

0-二进制数据(图像、视频、音频等)

1-文本(基本字符功能工作)

2-BLR(用于定义Firebird程序、触发器等)

用户应用程序应仅使用子类型0和1


如果无法将子类型更改为0,则可以尝试将数据转换为原始字节到客户端应用程序。

什么是blob子类型?如果是“1”(文本),则将其更改为子类型0-二进制数据。始终使用子类型0(二进制数据)来存储图像、视频、音频等。Blob子类型是文本。我无法更改数据库中的这些设置。