2016-03-02 134 views
0

我有以下內容的文本文件:如何從文本文件中將字符串轉換爲unicode?

Guadalajara 
Culiacán 
Juárez 
Ecatepec 

我想所有這些轉換爲Unicode。我試着使用:

unicode(INSERT WORD FROM TEXT FILE) 

但我得到的錯誤:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe1 in position 6: ordinal not in range(128) 

反正從文本文件轉換字符串爲Unicode的?

+0

嘗試使用'的Unicode(文字,「UTF-16」)' – Arman

+0

對於這個解決方案,我得到了以下錯誤:UnicodeDecodeError錯誤:「UTF-16」編解碼器不能在14位解碼字節0X0A :截斷數據 – semiflex

回答

1

您需要知道文件的編碼。如果你這樣做,打開該文件codecs.open(),你會自動獲得正確的Unicode對象:

import codecs 
with codecs.open("myfile.txt", encoding="utf-8") as infile: 
    text = infile.read() 

你也可以打開文件「正常」,然後手動解碼它的內容 - 你還需要知道什麼編碼是,雖然:

with open("myfile.txt") as infile: 
    text = infile.read() 
uni = text.decode("utf-8") 
+0

對於這兩種解決方案,我都得到相同的錯誤:UnicodeDecodeError:'utf8'編解碼器無法解碼位置7中的字節0xe1:inv alid延續字節 – semiflex

+0

解碼的默認參數是''utf-8'' – Arman

+0

@ragnampiza:正如我所說的,你需要*知道*文件的編碼。那麼該文件不是UTF-8。請檢查https://docs.python.org/2/library/codecs.html#standard-encodings,以獲取正確的參數以傳入encoding =「...」'。 –

相關問題