2011-02-13 39 views
1

雖然在ScraperWiki寫一刮,我反覆得到試圖挽救一個UTF8編碼的字符串時,這條消息:ScraperWiki數據存儲需要什麼編碼?

UnicodeDecodeError('utf8', ' the \xe2...', 49, 52, 'invalid data') 

我最終制定出來的,通過試的UnicodeDecodeError,該ScraperWiki數據存儲似乎期待的Unicode 。

所以我現在從UTF-8解碼,一切都轉換爲Unicode立即保存到數據存儲之前:

try: 
     for k, v in record.items(): 
      record[k] = unicode(v.decode('utf-8')) 
    except UnicodeDecodeError: 
     print "Record %s, %s has encoding error" % (k,v) 
    scraperwiki.datastore.save(unique_keys=["ref_no"], data=record) 

這就避免了錯誤,但是否明智?任何人都可以確認ScraperWiki數據存儲支持哪些編碼?

謝謝!

回答

1

數據存儲區要求使用UTF-8字節字符串或Unicode字符串。

這個例子表明節省了英鎊在Python英鎊貨幣符號的兩種方式:

http://scraperwiki.com/scrapers/unicode_test/

這同樣適用於其他語言。

爲了調試目的,您可以將非UTF-8/Unicode字符串打印到控制檯,並且不理解的字符將被刪除。

相關問題