您好
我从外国来源检索基于文本的utf8数据,其中包含u"ıöüç"
等特殊字符,而我想将它们标准化为英语,例如"ıöüç"
- > "iouc"
。实现这一目标的最佳方法是什么?
答案 0 :(得分:36)
我建议使用Unidecode module:
>>> from unidecode import unidecode
>>> unidecode(u'ıöüç')
'iouc'
请注意如何为其提供unicode字符串,并输出一个字节字符串。输出保证为ASCII。
答案 1 :(得分:5)
这一切都取决于你想要在多大程度上音译结果。如果您想将所有内容一直转换为ASCII(αβγ
到abg
),那么unidecode
就是您的选择。
如果您只是想从重音字母中删除重音,那么您可以尝试使用标准化形式NFKD分解您的字符串(这会将重音字母á
转换为普通字母a
,然后是{{1 })然后丢弃重音符号(属于Unicode character class U+0301 COMBINING ACUTE ACCENT
- “标记,非间距”)。
Mn
答案 2 :(得分:1)
我找到的最简单的方法:
unicodedata.normalize('NFKD', s).encode("ascii", "ignore")
答案 3 :(得分:0)
import unicodedata
unicodedata.normalize()