您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在Python中使用string.translate音译西里尔字母?

在Python中使用string.translate音译西里尔字母?

当与unicode字符串一起使用时,翻译行为会有所不同。除了提供maketrans表格外,您还需要提供一个词典ord(search)->ord(replace)

symbols = (u"абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ",
           u"abvgdeejzijklmnoprstufhzcss_y_euaABVGDEEJZIJKLMNOPRSTUFHZCSS_Y_EUA")

tr = {ord(a):ord(b) for a, b in zip(*symbols)}

# for Python 2.*:
# tr = dict( [ (ord(a), ord(b)) for (a, b) in zip(*symbols) ] )

text = u'Добрый Ден'
print text.translate(tr)  # looks good

就是说,我建议不要重新发明轮子并使用已建立的库:http ://pypi.python.org/pypi/Unidecode

python 2022/1/1 18:33:44 有217人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶