Python:如何读取和解析unicode utf-8文本文件?

3 投票
4 回答
4372 浏览
提问于 2025-04-15 16:46

我从Excel导出了UTF-8格式的文本,现在想用Python来读取和解析这些数据。我在网上查了很多资料,已经尝试过一些方法,比如:

 txtFile = codecs.open( 'halout.txt', 'r', 'utf-8' )
 for line in txtFile:
  print repr( line )

但是我遇到的错误是:

UnicodeDecodeError: 'utf8' 编码无法解码位置0的字节0xff: 意外的代码字节

我用十六进制编辑器查看文本文件,发现开头的值是FFFE。我还尝试过:

txtFile.seek( 2 )

在'open'之后加上这个,但这样又出现了不同的错误。

4 个回答

2

接着Johnathan的评论,这段代码应该能正确读取文件:

import codecs
txtFile = codecs.open( 'halout.txt', 'r', 'utf-16' )
for line in txtFile:
   print repr( line )
5

这个文件不是UTF-8格式;它是带有字节顺序标记的UTF-16LE格式

2

那是一个字节顺序标记(BOM)

编辑:根据评论来看,这似乎是一个UTF-16的字节顺序标记。

codecs.open('foo.txt', 'r', 'utf-16')

应该可以正常工作。

撰写回答