假设我有一个字符串"blöt träbåt"
,它有几个a
和{"blot trabat"
。我做了一些挖掘,发现了以下方法:
import unicodedata
unicode_string = unicodedata.normalize('NFKD', unicode(string))
这将给我一个unicode格式的字符串,其中国际字符被拆分为基本字母并组合字符(\u0308
表示元音变音符)。现在要将它返回到一个ASCII字符串,我可以做ascii_string = unicode_string.encode('ASCII', 'ignore')
,它将忽略组合字符,得到字符串"blot trabat"
。在
这里的问题是:有没有更好的方法来做到这一点?感觉像是一个迂回的方式,我在想可能有什么我不知道的。当然,我可以用helper函数来包装它,但是我更愿意检查Python中是否已经存在这个函数。在
最好创建一个显式表,然后使用unicode.翻译方法。这样做的好处是音译更精确,例如将“ß”译为“oe”,将“ß”译为“ss”,这在德语中应该做到。在
PyPI上有几个音译包:translitcodec,Unidecode,和{a3}。在
相关问题 更多 >
编程相关推荐