为什么这个替换功能不起作用?

时间:2014-04-12 00:53:20

标签: python string python-2.7 escaping

所以我使用这行Python来替换字符串中的一些奇怪的字符;

title = title.replace('\xc3', 'e').replace('\xa9', 's')

奇怪的字符串是:

" B \ xc3 \ xa9same Mucho"

它有一些西班牙风格的口音,我认为试图摆脱它们而不是试图实现重音会更简单。

但它并没有取代受影响的部分。

这条线有什么问题?

谢谢!

evamvid

1 个答案:

答案 0 :(得分:1)

假设您使用的是Python 2.7,那么您只需要classic bad encoding day。 Python 2因其Unicode(De | En)codeError而臭名昭着。如果你真的想要替换这些字符,请注意:

>>> utitle = title.decode('utf-8')
u'B\xe9same Mucho'

所以

>>> utitle.replace(u'\xe9', 'e')
u'Besame Mucho'

但你真的想要一直处理unicode,那里的角色真的很好,所以只需要做decode

这是Python 3比Python 2好得多的一个领域。