如何修复或删除Python3中格式错误的utf8字符

2024-04-19 00:02:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我有几个包含python3无法处理的字符的文本文件。最麻烦的似乎是“结束”引号。你知道吗

我试着用以下方法读取文件:

with open(filename, 'r', errors='backslashreplace') as file:
    text = file.read()
with open(filename, 'w', errors='backslashreplace') as file:
    file.write(text)

在Notepad++中打开文件以查看字符时,突出显示xE2 x80以指示非文本字符,在普通文本中后跟\x9d。你知道吗

我看到this处理\xE2\x80\x9D字符。在python REPL中,我可以手动创建一个像这样的bytes对象,将其解码为utf-8,并且在打印时显示为我期望的字符。我不知道为什么在读取文件时字符没有被正确理解。你知道吗

当读取文件时出现ignore错误,而不是backslashreplace,仍然会出现xE2 X80字符,而且我还没有想出如何执行字符串操作来删除它们。你知道吗

最终,我的目标是用普通引号替换所有这些奇怪的引号。我可以想象有几种方法来实现这一点,但它们都要求我以某种方式寻址(或删除)这个xE2 X80字符,或者正确地读取3字节的\xE2\x80\x9D字符。你知道吗


Tags: 文件方法text文本aswithopenfilename
1条回答
网友
1楼 · 发布于 2024-04-19 00:02:28

指定编码类型应该可以解决这个问题。你可以这样做

with open(filename, 'r', encoding='utf8', errors='backslashreplace' ) as file:
    text = file.read()
with open(filename, 'w', encoding='utf8', errors='backslashreplace') as file:
    file.write(text)

相关问题 更多 >