我用这个:
title=title.replace(u'【',u'[').replace(u'】',u'[')
但错误:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 0: ordinal not in range(128)
我用这个:
title=title.replace(u'【',u'[').replace(u'】',u'[')
但错误:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe3 in position 0: ordinal not in range(128)
那是因为title
一开始就不是unicode
。使用前先解码。
您需要title
成为 unicode 对象,而不是 str 对象
例如。
title = title.decode("utf-8") # or whatever encoding title is using
Ignacio 发布的链接很棒,请仔细阅读。
大的“[”在 CJK 字符集中,这里的人可能没有安装正确的字体来渲染它。所以我用粗体[来表示它。
如果您不关心直接在 Python 中使用编码字符串,但这是非常不推荐的,只需 ".replace(' [ ', '[')" 使用字符串而不是 unicode。
如果你想,实际上你应该使用 unicode 在 Python 中操作文本,你需要确保你使用的所有文本都是 unicode by .decode(string_encoding)
. 此外,将您的全局默认编码设置为 'utf-8' in sitecustomize.py
,这将使系统.decode('utf-8')
自动为您执行。