Python'ascii'编解码器无法编码字符错误

时间:2018-07-11 10:28:53

标签: python python-3.x codec

我正在尝试读取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。

1 个答案:

答案 0 :(得分:0)

前几个字节是BOM(字节顺序标记)。这是Unicode文档开头的字节序列,告诉您字节顺序,编码等。

这篇Wikipedia文章将有助于解释技术细节:

Byte order mark

您有两种选择。该答案显示了处理不同编码的BOM的各种方法:Stack Overflow answer

这个答案向您展示了如何正确地将文件读入内存,这是我认为您想要做的。 Stack Overflow answer。这样,您就可以将文件作为普通的Python字符串进行处理。