我有一个带有重音拉丁字符的unicode字符串,例如
n=unicode('Wikipédia, le projet d’encyclopédie','utf-8')
Run Code Online (Sandbox Code Playgroud)
我想把它转换成普通的ascii,即'Wikipedia,le projet dencyclopedie',所以所有的尖锐/重音,cedilla等应该被删除
最快的方法是什么,因为需要完成匹配长自动完成下拉列表
结论: 作为我的标准之一是速度,Lennart的"为unicode编码/解码注册你自己的错误处理程序"给出了最好的结果(参见Alex的答案),随着越来越多的字符拉丁语,速度差异进一步增加.
这是我正在使用的转换表,也修改了错误处理程序,因为它需要处理从error.start到error.end的所有未编码的char.
# -*- coding: utf-8 -*-
import codecs
"""
This is more of visual translation also avoiding multiple char translation
e.g. £ may be written as {pound}
"""
latin_dict = {
u"¡": u"!", u"¢": u"c", u"£": u"L", u"¤": u"o", u"¥": u"Y",
u"¦": u"|", u"§": u"S", u"¨": u"`", u"©": u"c", u"ª": u"a",
u"«": u"<<", u"¬": u"-", u"": u"-", u"®": u"R", u"¯": u"-",
u"°": u"o", u"±": u"+-", u"²": u"2", u"³": u"3", …Run Code Online (Sandbox Code Playgroud)