我有一个字符串“MikaelHåfström”,其中包含一些特殊字符,如何使用python删除它?
答案 0 :(得分:12)
您可以使用unicodedata
模块来规范化unicode字符串,并将其编码为ASCII格式,如下所示:
>>> import unicodedata
>>> source = u'Mikael Håfström'
>>> unicodedata.normalize('NFKD', source).encode('ascii', 'ignore')
'Mikael Hafstrom'
一个值得注意的例外是Python不识别字母'đ'和'Đ',它们不会被编码为'd',因此它们将被简单地从结果中省略。这是一种在一些SEE语言的拉丁字母表中出现的浊音 - 腭语,因此它可能会或可能不会立即引起您的观众或您是否提供对Latin-1字符集的完全支持。我目前在本地运行Python 2.6.5(2010年3月19日)并且存在问题,但我确信它可能已经通过新版本解决了。
答案 1 :(得分:5)
例如使用编码方法:u"Mikael Håfström".encode("ascii", "ignore")
答案 2 :(得分:1)
请参阅此effbot article(包含代码)。它尽可能合理地将音译转换成ASCII字符。可以扩展内置转换表以处理没有规范分解的许多其他字符(例如在东欧语言中使用的字符)。