2014-02-25 49 views
2

當我嘗試運行此代碼:Pycharm和代碼UTF-8

with open('scraped.csv', 'w') as dump: 
     writer = csv.writer(dump, delimiter='ę', escapechar='\\',quoting=csv.QUOTE_NONE) 
     writer.writerow(('author', 'ups', 'downs', 
         'score', 'sub_name', 'replys', 
         'created_utc', 'pulled down at')) 
在PyCharm

,我收到以下錯誤

File ..., line 38, in <module> 
'created_utc', 'pulled down at')) 
UnicodeEncodeError: 'ascii' codec can't encode character '\u0119' in position 6: ordinal not in range(128) 

是PyCharm不能支持UTF-8文件?或者我錯過了某個地方的設置。相同的文件建立在Sublime中。

+0

我相信'csv'模塊指定文件必須以二進制模式打開。 –

+0

@MarkRansom:在Python 3中,它應該是一個帶'newline ='''參數的文本模式。 – jfs

回答

5

我PyCharm之前也有過類似的錯誤,我認爲這是值得做的編碼檢測選擇「ASCII」而不是UTF8。然而,有一個簡單的解決方法:

with open('scraped.csv', 'w', encoding='utf8') as dump: 
    writer = csv.writ... 

編碼選項將強制文件加載UTF8。

+0

add'newline ='''。 – jfs

+0

@ J.F.Sebastian在哪裏?是什麼原因? –

+0

@PeterGibson:讀CSV文檔 – jfs