从字符串中删除重音字符 - Python

时间:2015-11-26 22:47:39

标签: python unicode

我从网页上获取了一些数据并在python

中读取
origional_doc = urllib2.urlopen(url).read()

有时这个网址包含é and ä and ect.这样的字符,我怎么能从字符串中删除这些字符,现在这就是我正在尝试的,

import unicodedata
origional_doc = ''.join((c for c in unicodedata.normalize('NFD', origional_doc) if unicodedata.category(c) != 'Mn'))

但是我收到了错误

TypeError: must be unicode, not str

2 个答案:

答案 0 :(得分:0)

这应该有效。它将消除所有不是ascii的字符。

    original_doc = (original_doc.decode('unicode_escape').encode('ascii','ignore'))

答案 1 :(得分:-1)

使用re,您可以将所有字符包含在某个十六进制ascii范围内。

>>> re.sub('[\x80-\xFF]','','é and ä and ect')
' and  and ect'

您也可以执行反转和子任务,但不包括基本的128个字符:

>>> re.sub('[^\x00-\x7F]','','é and ä and ect')
' and  and ect'