Python正则表达式将字符串中的非ascii字符转换为最接近的ascii等价物

dre*_*ves 12 python regex ascii character-encoding special-characters

我正在寻找简单的Python函数,它接受一个字符串并返回一个类似的字符串,但所有非ascii字符转换为它们最接近的ascii等价物.例如,应该删除变音符号等.我想象必须有一个非常规范的方法来做这个并且有很多相关的stackoverflow问题,但我找不到一个简单的答案所以它似乎值得一个单独的问题.

输入/输出示例:

"Étienne" -> "Etienne"
Run Code Online (Sandbox Code Playgroud)

Nei*_*man 6

读这个问题让我去寻找更好的东西。

https://pypi.python.org/pypi/Unidecode/0.04.1

完全符合您的要求。


Dou*_*der 1

搜索“iconv TRANSLIT python”我发现: http://www.tablix.org/~avian/blog/archives/2009/01/unicode_transliteration_in_python/看起来它可能就是您所需要的。评论中有一些其他使用标准库的想法。

还有http://web.archive.org/web/20070807224749/http://techxplorer.com/2006/07/18/converting-unicode-to-ascii-using-python/使用 NFKD 获取基本字符在可能的情况。