如何操作 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)
我有一个包含多字节数据的日志文件 ()。我想编写一个脚本来对其进行一些数据操作。
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)