我使用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'编解码器无法解码字节0x98 578:字符映射到< undefined>
数据库中的编码字段:Win-1251类型:Blob。
我该如何解决?
答案 0 :(得分:0)
发生此错误的原因是blob字段的子类型1(文本)。
subtypes是:
0 - 二进制数据(图像,视频,音频,等等)
1 - 文本(基本字符函数工作)
2 - BLR(用于Firebird程序,触发器等的定义)
用户应用程序应仅使用子类型0和1。
如果无法将子类型更改为0,则可以尝试将数据转换为原始字节到客户端应用程序中。