我正在使用Google App Engine for Python,但我得到一个unicode错误是否有办法解决它? 这是我的代码:
def get(self):
contents = db.GqlQuery("SELECT * FROM Content ORDER BY created DESC")
output = StringIO.StringIO()
with zipfile.ZipFile(output, 'w') as myzip:
for content in contents:
if content.code:
code=content.code
else:
code=content.code2
myzip.writestr("udacity_code", code)
self.response.headers["Content-Type"] = "application/zip"
self.response.headers['Content-Disposition'] = "attachment; filename=test.zip"
self.response.out.write(output.getvalue())
我现在收到一个unicode错误:
UnicodeDecodeError:'ascii'编解码器无法解码位置12中的字节0xf7:序数不在范围内(128)
我相信它来自output.getvalue()......有没有办法解决这个问题?
答案 0 :(得分:2)
答案 1 :(得分:0)
我有完全相同的问题。 最后,我通过改变对来自
的调用来解决它myzip.writestr("udacity_code", code)
到
myzip.writestr("udacity_code", code.encode('utf-8'))
答案 2 :(得分:-1)
从这个链接:
Python UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 ordinal not in range(128)
但与此同时,您的问题是您的模板是ASCII 但是你的数据不是(不知道它是utf-8还是unicode)。简单 解决方案是为每个模板字符串添加前缀以使其成为Unicode。