如何替换非ASCII字符

时间:2016-01-12 09:48:55

标签: python python-2.7 ascii

我有一个email [ à ] example.com

形式的字符串

我想把它email@example.com

我试过了:

print email.replace(u"\xa0", "@")
print email.replace(" [ à ] ", "@")
print email.replace(" à ", "@")
email = email.replace(u" à ", "@")

但我总是得到这个错误:

  

'ascii'编解码器无法解码位置3中的字节0xc3:序数不在范围内(128)

2 个答案:

答案 0 :(得分:0)

如果您对字符串和替换使用unicode类型,则此方法有效:

>>> email = u"email [ à ] domain.fr"
>>> email.replace(u" [ à ] ", u"@")
u'email@domain.fr'

要从unicode中获取str对象,请使用.decode()

email.decode("utf-8")  # or provide another encoding

答案 1 :(得分:0)

或者,如果您不想使用unicode字符串,请使用:

In [8]: email = 'email [ à ] domain.fr'

In [9]: email.replace(' [ \xc3\xa0 ] ', '@')
Out[9]: 'email@domain.fr'