【问题标题】:Python 'ascii' codec can't encode character error [duplicate]Python'ascii'编解码器无法编码字符错误[重复]
【发布时间】:2018-07-11 10:28:52
【问题描述】:

我试图读取 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。

【问题讨论】:

  • 文件需要解码utf-16le而不是utf-16
  • 谢谢,但没用。

标签: python python-3.x codec


【解决方案1】:

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

这篇维基百科文章将帮助解释技术细节:

Byte order mark

你有几个选择。这个答案显示了处理不同编码的 BOM 的各种方法:Stack Overflow answer

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-31
    • 1970-01-01
    • 1970-01-01
    • 2018-12-11
    • 1970-01-01
    • 2015-02-03
    • 2019-09-01
    • 2016-11-03
    相关资源
    最近更新 更多