Bli*_*ixt 5 python string internationalization
说我有串"blöt träbåt"
具有几个a
和o
与元音和上述的环.我希望它变得"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中.
如果您创建了一个显式表,然后使用unicode.translate方法会更好.优点是音译更精确,例如将"ö"音译为"oe",将"ß"音译为"ss",这应该用德语进行.
PyPI上有几个音译包:translitcodec,Unidecode和trans.