说我有绳子"blöt träbåt"
其中有几个a
and o
上面有变音符号和圆环。我希望它成为"blot trabat"
尽可能简单。我做了一些挖掘并发现了以下方法:
import unicodedata
unicode_string = unicodedata.normalize('NFKD', unicode(string))
这将为我提供 unicode 格式的字符串,其中国际字符分为基本字母和组合字符 (\u0308
变音符号。)现在我可以将其恢复为 ASCII 字符串ascii_string = unicode_string.encode('ASCII', 'ignore')
它只会忽略组合字符,从而产生字符串"blot trabat"
.
这里的问题是:有更好的方法吗?这感觉像是一种迂回的方式,我在想可能有什么我不知道的事情。我当然可以将它包装在一个辅助函数中,但我宁愿检查 Python 中是否已经存在这个函数。
如果您创建一个显式表,然后使用 unicode.translate 方法,那就更好了。优点是音译更精确,例如将“ö”音译为“oe”,将“ß”音译为“ss”,就像德语中的做法一样。
PyPI 上有几个音译包:转译编解码器, 统一编码, and trans.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)