2013-03-12 45 views
1

我有一個Google App Engine應用程序,它以多種語言存儲數據,例如,德語和俄語。爲此,我需要將字符串存儲爲UTF-8,幸運的是,由於我使用了webapp2.request處理程序,所以它是自動完成的。作爲一名開始的程序員,這讓我避免了編碼和解碼數據的複雜性。GAE Python - CSV編寫器提供ascii編解碼器錯誤

但是現在我正在嘗試將內容寫入CSV文件,並且似乎對於csv.writer命令而言,無論如何編碼都是必需的。現在,我不知道我是否應該進行解碼或編碼,但目前我得到的錯誤是以下幾點:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-9: ordinal not in range(128) 

我使用的代碼是:

import csv, webapp2, codecs 

class AdminShopExport(webapp2.RequestHandler): 
    def get(self): 
    shops = Shop.all() 
    shops.order('name') 
    self.response.headers['Content-Type'] = 'application/csv' 
    writer = csv.writer(self.response.out) 
    writer.writerow(["id", "name", "domain", "category"]) 
    for shop in shops: 
     writer.writerow([shop.keyname, shop.name, shop.url, shop.category]) 

關於內容,錯誤的是目前來自俄羅斯的一個類別。但是,如上所述,這些字段中的任何一個都可以包含UTF-8字符。處理這個問題的最佳方法是什麼?謝謝你的幫助!

回答

相關問題