0

我用这个:

    title=title.replace(u'【',u'[').replace(u'】',u'[')

但错误:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 0: ordinal not in range(128)
4

3 回答 3

4

那是因为title一开始就不是unicode使用前先解码。

于 2012-04-10T00:58:36.560 回答
1

您需要title成为 unicode 对象,而不是 str 对象

例如。

title = title.decode("utf-8")  # or whatever encoding title is using
于 2012-04-10T01:01:17.550 回答
1

Ignacio 发布的链接很棒,请仔细阅读。

大的“[”在 CJK 字符集中,这里的人可能没有安装正确的字体来渲染它。所以我用粗体[来表示它。

如果您不关心直接在 Python 中使用编码字符串,但这是非常不推荐的,只需 ".replace(' [ ', '[')" 使用字符串而不是 unicode。

如果你想,实际上你应该使用 unicode 在 Python 中操作文本,你需要确保你使用的所有文本都是 unicode by .decode(string_encoding). 此外,将您的全局默认编码设置为 'utf-8' in sitecustomize.py,这将使系统.decode('utf-8')自动为您执行。

于 2012-04-10T04:05:57.817 回答