你好,我从外部数据源检索基于UTF8编码的文本数据,其中包含特殊字符,例如u"ıöüç"
,而我希望将它们标准化为英语形式,如"ıöüç"
-> "iouc"
。最佳方法是什么?
你好,我从外部数据源检索基于UTF8编码的文本数据,其中包含特殊字符,例如u"ıöüç"
,而我希望将它们标准化为英语形式,如"ıöüç"
-> "iouc"
。最佳方法是什么?
我建议使用Unidecode模块:
>>> from unidecode import unidecode
>>> unidecode(u'ıöüç')
'iouc'
注意传递给它的是一个Unicode字符串,输出的是一个字节字符串。输出保证为ASCII编码。
αβγ
转换为 abg
),那么 unidecode
是正确的选择。á
转换为普通字母 a
,后面跟着 U+0301 COMBINING ACUTE ACCENT
),然后丢弃重音(属于 Unicode 字符类 Mn
——"标记、非间隔") 。import unicodedata
def remove_nonspacing_marks(s):
"Decompose the unicode string s and remove non-spacing marks."
return ''.join(c for c in unicodedata.normalize('NFKD', s)
if unicodedata.category(c) != 'Mn')
unicodedata.normalize('NFKD', s).encode("ascii", "ignore")
import unicodedata
unicodedata.normalize()
音译
。 - soulseekah