删除unicode字符python

时间:2016-05-05 07:43:31

标签: python python-2.7 unicode unicode-string

我使用tweepy在python中提取推文。 它以unicode类型提供整个数据。 例如:打印类型(数据)给我<type 'unicode'>

它包含unicode字符。 例如:hello\u2026 im am fine\u2019s

我想删除所有这些unicode字符。我可以使用任何正则表达式吗? str.replace不是一个可行的选项,因为unicode字符可以是任何值,从表情符号到unicode撇号。

1 个答案:

答案 0 :(得分:1)

In [10]: from unicodedata import normalize

In [11]: out_text = normalize('NFKD', input_text).encode('ascii','ignore')

试试这个。

修改

实际上规范化返回Unicode字符串unistr的普通表单形式。表单的有效值为“NFC”,“NFKC”,“NFD”和“NFKD”。如果您对NFKD有更多了解,请转到link

In [12]: u = unichr(40960) + u'abcd' + unichr(1972)
In [13]: u.encode('utf-8')
Out[13]: '\xea\x80\x80abcd\xde\xb4'
In [14]: u
Out[14]: u'\ua000abcd\u07b4'
In [16]: u.encode('ascii', 'ignore')
Out[16]: 'abcd'

从上面的代码中,您将获得encode('ascii','ignore') 所做的事情。

参考:https://docs.python.org/2/library/unicodedata.html#unicodedata.normalize