【问题标题】:Bytes after every letter. How to get rid of them每个字母后的字节。如何摆脱它们
【发布时间】:2017-01-18 19:34:52
【问题描述】:

为什么当我打开我的 .txt 文件时我的 Python 显示出如此奇怪的模式,我如何才能正常加载它(我使用 Python 3.5)?换句话说,我想在我拥有的每个字母之后去掉 \x00。

In:
f = open(file_path, encoding="utf-8", errors="ignore")
read_data = f.read()
read_data[0:100]

Out:
'H\x00i\x00e\x00r\x00b\x00i\x00j\x00 \x00w\x00i\x00l\x00 \x00i\x00k\x00 \x00u\x00 \x00m\x00e\x00d\x00e\x00d\x00e\x00l\x00e\x00n\x00,\x00 \x00d\x00a\x00t\x00 \x00i\x00k\x00 \x00m\x00i\x00j\x00n\x00 \x00s\x00p\x00a\x00a\x00r\x00r\x00e\x00k\x00e\x00n\x00'

我在记事本中打开文件时的示例:

Hierbij wil ik u mededelen, dat ik mijn spaarrekening onder nummer __LARGENUMBER__ wil beëindigen.                                                                          
Graag maak ik van de gelegenheid [... row continues]                    
Hierbij verzoek ik u de volgende rekening op te [... row continues]

【问题讨论】:

标签: python python-3.x


【解决方案1】:

您的文本很可能根本不是使用 UTF-8 编码的,而是使用 UTF-16 或 UCS-2 编码的。这意味着所有这些 NUL 实际上都是之前字符代码的一部分。验证它可能需要一个使用第二个字节的字符,比如 BOM 或者可能是 ë。读取文件时尝试使用utf_16_le 作为编码。

【讨论】:

  • 它是 UTF-16。谢谢!
猜你喜欢
  • 1970-01-01
  • 2015-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-29
  • 2011-04-29
  • 2010-10-29
相关资源
最近更新 更多