Skip to main content
 首页 » 编程设计

python之在 python 中处理非 ascii 代码字符串

2025年05月04日25soundcode

在 python 中处理非 ascii 代码字符真的很困惑。谁能解释一下?

我正在尝试读取纯文本文件并将所有非字母字符替换为空格。

我有一个字符列表:

ignorelist = ('!', '-', '_', '(', ')', ',', '.', ':', ';', '"', '\'', '?', '#', '@', '$', '^', '&', '*', '+', '=', '{', '}', '[', ']', '\\', '|', '<', '>', '/', u'—') 

对于我得到的每个 token ,我通过调用用空格替换该 token 中的任何字符

    for punc in ignorelist: 
        token = token.replace(punc, ' ') 

注意 ignorelist 末尾有一个非 ascii 码字符:u'—'

每当我的代码遇到那个字符时,它就会崩溃并说:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 

我尝试通过在文件顶部添加 # -*- coding: utf-8 -*- 来声明编码,但仍然无法正常工作。有谁知道为什么?谢谢!

请您参考如下方法:

您的文件输入不是 utf-8。因此,当您点击该 unicode 字符时,您的输入会在比较时出现错误,因为它将您的输入视为 ascii。

尝试用它来读取文件。

import codecs 
f = codecs.open("test", "r", "utf-8")