我有一个包含特殊字符的字符串"Mikael Håfström",我该如何使用Python将其删除?
我有一个包含特殊字符的字符串"Mikael Håfström",我该如何使用Python将其删除?
您可以使用unicodedata
模块来规范化Unicode字符串并将它们编码为ASCII形式:
>>> import unicodedata
>>> source = u'Mikael Håfström'
>>> unicodedata.normalize('NFKD', source).encode('ascii', 'ignore')
'Mikael Hafstrom'
有一个显著的例外是,Python不识别字母'd'和'D',它们不会被编码为'd',因此它们将从结果中被简单地省略掉。这是某些南欧-东欧语言拉丁字母表中的一个带音腭硬颚塞擦音,所以根据您的受众或是否提供对Latin-1字符集的完全支持,它可能会或可能不会立即关注您。我目前正在本地运行Python 2.6.5(Mar 19 2010),问题仍然存在,尽管我确信它可能已经在新版本中得到解决。
unicodedata
函数都直接从unicode.org提供的表格中获取数据。没有“问题”。 - John Machinu"Mikael Håfström".encode("ascii", "ignore")