删除\ u2018和\ u2019字符

时间:2014-06-23 04:25:06

标签: python

我正在使用Beautiful Soup来解析网页并打印终端上访问过的网页的名称。但是,网页的名称通常是单一的(\ u2018)和左(\ u2019)字符,python无法打印,因为它提供了charmap编码错误。 有没有办法删除这些字符?

1 个答案:

答案 0 :(得分:37)

这些代码是单个左右引号字符的Unicode。你可以用它们的ASCII等效替换它们,Python不应该在你的系统上打印出任何问题:

>>> print u"\u2018Hi\u2019"
‘Hi’
>>> print u"\u2018Hi\u2019".replace(u"\u2018", "'").replace(u"\u2019", "'")
'Hi'

或者使用正则表达式:

import re
s = u"\u2018Hi\u2019"
>>> print re.sub(u"(\u2018|\u2019)", "'", s)
'Hi'

然而,Python也不会在打印这些版本的Unicode版本时遇到任何问题。您可能正在某处使用str()尝试将您的unicode转换为ascii并抛出异常。