首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >用于英语和波斯数字的String.maketrans

用于英语和波斯数字的String.maketrans
EN

Stack Overflow用户
提问于 2012-08-09 15:56:57
回答 5查看 8.8K关注 0票数 20

我有一个这样的函数:

代码语言:javascript
复制
persian_numbers = '۱۲۳۴۵۶۷۸۹۰'
english_numbers = '1234567890'
arabic_numbers  = '١٢٣٤٥٦٧٨٩٠'

english_trans   = string.maketrans(english_numbers, persian_numbers)
arabic_trans    = string.maketrans(arabic_numbers, persian_numbers)

text.translate(english_trans)
text.translate(arabic_trans)

我希望它能把所有的阿拉伯和英语数字翻译成波斯语。但是Python说:

代码语言:javascript
复制
english_translate = string.maketrans(english_numbers, persian_numbers)
ValueError: maketrans arguments must have same length

我试图用Unicode utf-8编码字符串,但我总是得到一些错误!有时问题出在阿拉伯字符串上!对于这项工作,你知道更好的解决方案吗?

编辑:

似乎问题出在ASCII中的Unicode字符长度。像'۱‘这样的阿拉伯数字是两个字符--这是我用ord()找到的。长度问题从这里开始:-(

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11879025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档