【发布时间】:2021-06-18 14:25:24
【问题描述】:
我有一个 pdf 文件想保存在我的 Postgres DB 中
当我尝试保存文件时,它带来了A string literal cannot contain NUL (0x00) characters.,所以我遵循了here 的解决方案,它将 null 替换为 � 字符 unicode(ppbData[0], errors='ignore').replace("\x00", "\uFFFD")
问题是我现在无法将其转换回 PDF。我试过encode()等方法
file = open('new.pdf', 'wb')
file.write(text.encode())
file.close()
但它返回空白 pdf
有没有办法用 null 替换 � 字符或任何其他方式将其转换回普通 pdf?也许替换的第一个解决方案也不正确,还有其他方法吗?
【问题讨论】:
-
问题是
\uFFFD也由有效的二进制字节组成,并且可能已经出现在您的 PDF 中,因此当您将它转换回 over-converts 字节时,您从不编码开始。您可以使用不同的编码——base64.。base64.encode(file.read()) -
稍后使用
base64.b64decode或 javascript 中的等价物解码。
标签: python django postgresql pdf