首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在python中查找utf-16文件。多么?

在python中查找utf-16文件。多么?
EN

Stack Overflow用户
提问于 2011-07-22 00:17:33
回答 1查看 13.8K关注 0票数 17

由于某些原因,我找不到我的utf16文件。它生成'UnicodeException: UTF-16流不以物料清单开头‘。我的代码:

代码语言:javascript
复制
f = codecs.open(ai_file, 'r', 'utf-16')
seek = self.ai_map[self._cbClass.Text]  #seek is valid int
f.seek(seek)
while True:
    ln = f.readline().strip()

我尝试了一些随机的东西,比如第一次从流中读取一些东西,但没有帮助。我检查了使用十六进制编辑器查找的偏移量-字符串从字符开始,而不是空字节(我想这是个好兆头,对吧?)那么如何在python中查找utf-16呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-22 00:41:15

错误消息告诉您原因:它没有读取字节顺序标记。字节顺序标记位于文件的开头。如果没有读取字节顺序标记,UTF-16解码器就无法知道字节的顺序。显然,在您第一次读取时,而不是在您打开文件时,它会懒惰地执行此操作--否则它会假定seek()正在启动一个新的UTF-16流。

如果您的文件没有BOM,这肯定是问题所在,您应该在打开文件时指定字节顺序(参见下面的#2 )。否则,我会看到两种可能的解决方案:

在查找之前,

  1. 读取文件的前两个字节以获取物料清单。您似乎说这不起作用,这表明它可能在查找之后需要一个新的UTF-16流,因此:当您打开文件时,
  2. 通过使用utf-16-leutf-16-be作为编码来显式指定字节顺序。
票数 26
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6779315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档