2012-07-23 110 views
1

我正在使用適用於Python的Google App Engine,但遇到unicode錯誤,是否有解決此問題的方法? 這裏是我的代碼:任何人都知道如何解決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' codec can't decode byte 0xf7 in position 12: ordinal not in range(128)

我相信它是從output.getvalue來()...是有辦法解決這一問題?

+0

如果包含了完整的堆棧跟蹤,我們不會有猜測,發生錯誤 - 該堆棧跟蹤告訴你。 – 2012-07-24 07:15:36

回答

2

@Areke伊格納西奧的回答是該修補程序。對於這裏的簡短演練是我最近做過的一篇文章「Python和Unicode Punjabi」https://www.pippallabs.com/blog/python-and-unicode-panjabi

+0

謝謝!!!!!! – areke 2012-07-23 05:53:06

+0

Ignacio的回答呢?我錯過了什麼? – elewinso 2016-01-20 13:12:57

+0

可能被他刪除。答案是幾年前。然而,博客鏈接應該回答你有任何疑問的詳細信息。 – PunjCoder 2016-01-20 20:55:26

0

我有完全相同的問題。 最後我解決它通過改變呼叫從

myzip.writestr("udacity_code", code) 

到writestr到

myzip.writestr("udacity_code", code.encode('utf-8')) 
相關問題