2

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

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

我该如何解决?

4

1 回答 1

1

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

亚型 是:

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

1 - 文本(基本字符功能有效)

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

用户应用程序应该只使用子类型 0 和 1。

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

于 2016-11-21T12:00:16.627 回答