2016-03-02 136 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 =“...”'。 –

相关问题