我使用Python 2.7的unicodecsv嵌入式模塊來讀取包含28種不同語言的單詞列的CSV文件,其中一些文件有重音和/或完全利用不同的字母/字符系統。我加載的CSV將UTF-8轉義字符讀取/解碼爲本機字符
with open(sourceFile, 'rU') as keywordCSV:
keywordList = csv.reader(keywordCSV, encoding='utf-8-sig', dialect=csv.excel)
但keywordList
閱讀目前正在生產的Unicode轉義字符/序列,而不是本地字符符號。雖然這並不理想(理想情況下,我可以從一開始就將csv中的unicode加載爲本地字符符號),但只要我可以在腳本中稍後將這些符號轉換爲本地字符符號(在導出爲無論哪種文件類型都會使這個最簡單)。這是如何做的,或者最好是理想的情況?我試圖使用變通方法,如these無濟於事,我仍然不確定這是腳本中的解釋器問題還是編碼問題。
讀取文件時,我已經使用utf-8-sig
的原因是,沒有這樣做,是導致(BOM
)
UnicodeEncodeError: 'ascii' codec can't encode character u'\ufeff' in position 155:
,但是現在已經停止發生的原因不爲人知我。同樣,打開文件不這樣做,當我使用'rU'
產生
_csv.Error: new-line character seen in unquoted field - do you need to open the file in universal-newline mode?
,但我不知道如果這些都是適當的。
在this問題,通過在天然字符中的一個的結果打印每一個字符一個正在打印(一些也適用於從終端運行時我的代碼),是有通過人物迭代和轉換每一個的方式到它的本土特徵?
對於在這個已經飽和的話題上發佈另一個問題的道歉,但我還沒有能夠得到其他人的建議,爲這種情況下工作。也許我一直在尋找錯誤的地方,試圖解碼腳本末尾的編碼csv輸出,而問題出在我的csv.reader
的encoding
。任何幫助將非常感激。
編解碼器可能是更好的選項來讀取非ascii字符的文件。 https://docs.python.org/2/library/codecs.html, –
檢查一下,它與你有關。 https://codepoints.net/U+FEFF –
我試過多個'.encode()'和'.decode()'組合,但沒有成功。你將如何去實現編解碼器? –