python - 文本比较时出现 UnicodeDecodeError

标签 python

在执行子字符串匹配时,我收到 UnicodeDecodeError: 'ascii' codec can't Decode byte 0xc3 inposition 8: ordinal not in range(128)

代码:

for bhk in bed_bath:
            if "Bedroom" in bhk.text or "Chambre à coucher" in bhk.text or "Slaapkamer" in bhk.text:
                bhk_count += 1

如何解决?

我在文件的开头包含了以下几行。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

最佳答案

我假设您使用的是 python 2。

出现此问题是因为 bhk.​​text 是 unicode 字符串。

当您进行诸如 bhk.text 中的“Chambre à coucher”之类的比较时,文字字符串(非 unicode 字符串)需要转换为 unicode 字符串。

由于您声明文件采用 utf-8 编码,unicode char à 被编码为字符串 "\xc3\xa0"

当 python 尝试使用默认编解码器 (ascii) 转换 char“0xc3”时,它无法将其映射到 unicode 字符并引发该错误。

解决方案是将非 ASCII 字符的字符串声明为 unicode,例如:

u"Chambre à coucher" in bhk.text

关于python - 文本比较时出现 UnicodeDecodeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33547909/

相关文章:

python - 在 python postgresql 列表中返回单列提取

python - 将所有大写字符替换为 'X',将所有小写字符替换为 'x',同时保持所有空格或符号相同

python - 如何从一张图像中自动检测特定特征并将其映射到另一张蒙版图像?那么如何只平滑图像的角落呢?

python - 遍历 Python 中的字符串元素列表,并将该迭代器变成一个 int

jquery - 如何在 python 中编写自动建议搜索?

python正则表达式,多行匹配,但仍想获取行号

python - 通过For循环修改Pandas系列

Python with BS4 and urllib - 如何移动/操作从网站提取的文本

python - 无向图中连通分量的数量

python - 使用Python递归生成组合