【发布时间】:2017-11-21 17:57:40
【问题描述】:
我已经阅读了一些关于这个问题的帖子,但其中大多数对我的情况没有帮助,我正在尝试将编码的 pdf 保存在一个 zip 文件中(我正在使用 Docraptor API 来生成 pdf,它返回编码的pdf)。
def toZip(request, ...):
...
response = docraptor_api_call() #api call to generate pdf (encoded pdf)
with open('creation.pdf', 'wb') as f:
f.write(response)
#decode pdf
with open(f.name, 'rb') as pdf:
# this will download the pdf to the user
# doc = HttpResponse(pdf.read(), content_type='application/pdf')
# doc['Content-Disposition'] = "attachment; filename=filename.pdf"
# return doc
zip_io = io.BytesIO()
# create zipFile
zf = zipfile.ZipFile(zip_io, mode='w')
# write PDF in ZIP ?
save_zf = zf.write(pdf.read())
# save zip to FileField
zip = ZipStore.objects.create(zip=save_zf)
在尝试顶部的代码时,我收到此错误:
UnicodeEncodeError: 'charmap' 编解码器无法对位置 43 中的字符 '\u2019' 进行编码:字符映射到
我真的不明白我做错了什么以及我应该如何解决它,有什么建议吗?
【问题讨论】:
-
这里只是从臀部发射,但听起来您需要更改错误来源所使用的编码。
-
@SuperStew 编码是 utf-8,我不确定错误来自那个
-
您可能需要将其更改为其他内容。或者过滤掉不兼容的字符。