如何操作 python 中的多字节字符串?

How to manipulate multibyte string in python?

我有一个包含多字节数据的日志文件 ()。我想编写一个脚本来对其进行一些数据操作。

with open(fo, encoding="cp1252") as file:
    for line in file:
        print(line)
        if("WINDOWS" in line):
            print(found)

print(line) 给出以下输出:

每个字符后多一个字节。 由于 WINDOWS 不是多字节这一事实,这不起作用。我无法找到解决方案。有人可以帮我吗?

cp1252 不是多字节编码。如果文件实际上包含 UTF-16,但大部分都在 Unicode 的最低范围内,使用 cp1252 将产生 大致 正确的字符,除了会有零它们之间的 (null) 字节。如果没有文件中字节的明确样本,我们只能推测;但尝试用 encoding='utf-16le' 打开文件。 (如果失败,请编辑您的问题以在文件中包含二进制字节的十六进制转储或 repr();另请参阅 Problematic questions about decoding errors