3

我正在从 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 )

就在“打开”之后,但这只会导致不同的错误。

4

4 回答 4

5

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

于 2009-12-07T21:21:58.760 回答
2

那是一个BOM

编辑,从评论来看,它似乎是一个 utf-16 bom

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

应该管用。

于 2009-12-07T21:22:11.410 回答
2

扩展 Johnathan 的评论,此代码应正确读取文件:

import codecs
txtFile = codecs.open( 'halout.txt', 'r', 'utf-16' )
for line in txtFile:
   print repr( line )
于 2009-12-07T21:33:30.127 回答
0

尝试查看 excel 文件是否有一些空白行(然后又有值),这可能会导致意外错误。

于 2009-12-08T00:27:50.253 回答