可能重复:
What is the best way to remove accents in a python unicode string?
在某个系统中,我需要生成只允许使用plain-ascii字符(a-z,0-9,破折号)的用户名。许多用户的名字不仅仅与这些限制相匹配,例如德语名称“Müller”或“Röthlin”。
现在那些变音符号有另一种键入方式(我确定它有一个名字,但我不知道 - 可能有助于谷歌搜索)
一种天真的方法是使用翻译表:
name = name.replace('Ä', 'Ae')
name = name.replace('ä', 'ae')
name = name.replace('ö', 'oe')
等等。
但是,只要您拥有来自德语以外的其他文化的用户,此方法就会失败,其他人物可能会出现。所以我正在寻找一种通用的方法来“转换”尽可能多的非ascii字符,然后再回过头来简单地删除它们。