用Python基础拉丁语替换国际字符的好方法是什么?

Bli*_*ixt 5 python string internationalization

说我有串"blöt träbåt"具有几个ao与元音和上述的环.我希望它变得"blot trabat"尽可能简单.我做了一些挖掘,发现了以下方法:

import unicodedata
unicode_string = unicodedata.normalize('NFKD', unicode(string))
Run Code Online (Sandbox Code Playgroud)

这将给我一个unicode格式的字符串,国际字符分为基本字母和组合字符(\u0308对于变音符号.)现在要把它恢复为我能做的ASCII字符串ascii_string = unicode_string.encode('ASCII', 'ignore'),它只是忽略组合字符,导致字符串"blot trabat".

这里的问题是:有更好的方法吗?感觉就像一个迂回的方式,我在想可能有一些我不知道的事情.我当然可以将它包装在辅助函数中,但我宁愿检查它是否已经存在于Python中.

Mar*_*wis 7

如果您创建了一个显式表,然后使用unicode.translate方法会更好.优点是音译更精确,例如将"ö"音译为"oe",将"ß"音译为"ss",这应该用德语进行.

PyPI上有几个音译包:translitcodec,Unidecodetrans.