我正在尝试读取utf-16文件。这段代码在本地计算机上运行良好,但是当我在AWS Batch服务上运行它时,出现了以上错误。
import codecs
file_to_split = codecs.open("file_utf_16.txt", 'r+', "UTF-16")
它引发异常header 'ascii' codec can't encode character '\ufeff' in position 0: ordinal not in range(128)
我正在使用Python 3.6。
答案 0 :(得分:0)
前几个字节是BOM(字节顺序标记)。这是Unicode文档开头的字节序列,告诉您字节顺序,编码等。
这篇Wikipedia文章将有助于解释技术细节:
您有两种选择。该答案显示了处理不同编码的BOM的各种方法:Stack Overflow answer
这个答案向您展示了如何正确地将文件读入内存,这是我认为您想要做的。 Stack Overflow answer。这样,您就可以将文件作为普通的Python字符串进行处理。