python - Python'ascii'编解码器无法编码字符错误
问题描述
我试图读取 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。
解决方案
前几个字节是 BOM(字节顺序标记)。这是 Unicode 文档开头的字节序列,告诉您字节顺序、编码等。
这篇维基百科文章将帮助解释技术细节:
你有几个选择。此答案显示了为不同编码处理 BOM 的各种方法:Stack Overflow 答案
这个答案向您展示了如何正确地将文件读入内存,这是我认为您想要做的。堆栈溢出答案。这样,您就可以将文件作为普通的 Python 字符串处理。
推荐阅读
- c++ - 如何在 C++ 中使用 cv::cuda::cvtColor()?
- python - Alpha Vantage 传递多个查询 - 全球报价
- javascript - 单击导航栏项目时如何下划线?
- php - 即使在 php.ini 中安装和启用 PDO 也未找到错误
- java - 没有静态方法元工厂
- git-lfs - 在本地禁用 git LFS Locking api,因为它超慢?
- reactjs - 选中列表中的复选框不会在 React 中再次呈现
- sql - 选择在某一天访问过所有课程的所有成员
- python - 重新安装python后pip不起作用是什么原因?
- node.js - 必须将哪些请求标头发送到服务器才能为您提供非缓存响应