任何人都知道如何修复unicode错误?

时间:2012-07-23 04:24:49

标签: python google-app-engine unicode

我正在使用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()......有没有办法解决这个问题?

3 个答案:

答案 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。