2014-04-12 41 views
0

所以我使用这一行Python来替换字符串中的一些奇怪的字符;为什么这个替换函数不起作用?

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

怪异的字符串是:

“B \ XC3 \ xa9same MUCHO”

它有一些西班牙风格的口音,我想这将是简单的,试图摆脱他们而不是试图实施口音。

但它并不能代替受影响的部件。

这条线有什么问题?

谢谢!

evamvid

+0

作用与Python 2.7.6中给出的一样。另外,你是什么意思“实施口音”? –

+0

你会得到什么输出?最初我得到'BésameMucho',替换后'Bessame Mucho'。 – ryrich

+0

你是什么意思*试图实现口音*?口音已经在这里实施。 Python只是以逃脱的形式表示它们。比较'print title'到'print repr(title)'。请记住它们的显示方式取决于您的终端字体。 – kojiro

回答

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好得多的一个领域。

相关问题