我编写了一个非常小的程序,它将一个文件的所有行复制到另一个文件 - 当该行包含某个字符串时。这是完整的来源:
f_in = open("all.txt", "r")
f_out = open("all.out", "w")
for line in f_in:
if "<title>" in line:
f_out.write(line)
f_out.close()
f_in.close()
这非常有效,直到涉及 all.txt 中的 utf-8 字符。然后它失败说:
UnicodeDecodeError:“charmap”编解码器无法解码位置 7102 中的字节 0x9d:字符映射到 <undefined>
现在我做了一个糟糕的解决方法:在目录 \Python\Lib\encodings 中,我复制了 utf-8.py 并将其重命名为 cp1252.py。
从现在开始 - 上面的小程序运行没有问题。但必须有一个更优雅的解决方案。你能告诉我让 Phyton 使用 utf-8.py 而不是 cp1252.py 需要什么吗?
我确信这是可能的,不需要大量的转换和解码等等 - 只需告诉 Python 使用另一个解码而不是 cp1252.py。