如何使用字符串.翻译()来翻译这个?

2024-09-19 23:30:58 发布

您现在位置:Python中文网/ 问答频道 /正文

首先,我有这个:

strSrc = '3.14'

我希望结果是:

^{pr2}$

注:繁体中文中的数字“3”是“叁”。这里:

0零 1壹 2贰 3叁 4肆 5伍 6陆 7柒 8捌 9玖

我想用strSrc翻译成中文字符串.翻译()。在

我检查了string.translate() doc,上面写着:

and then translate the characters using table, which must be a 256-character string

那么,这是否意味着我应该而不是使用字符串.翻译()来解决这个问题??在


但它总是出现编码问题,像这样:

>>> engToChn = string.maketrans('0123456789.', '零壹贰叁肆伍陆柒捌玖点')
Traceback (most recent call last):
    File "<stdin>", line 1, in <module> 
ValueError: maketrans arguments must have same length

如果你尝试这个:

>>> engToChn = string.maketrans('0123456789.', u'零壹贰叁肆伍陆柒捌玖点')
or
>>> engToChn = string.maketrans(u'0123456789.', u'零壹贰叁肆伍陆柒捌玖点')

这将是一个问题:

Traceback (most recent call last)
    File "<stdin>", line 1, in module
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-10: ordinal not in range(128)

Tags: 字符串inmoststringcalltranslatefilelast
1条回答
网友
1楼 · 发布于 2024-09-19 23:30:58

问题是汉字(汉字)不适合字符串。在

尝试以下操作:

transtable = { ord("0"):u'零', ord("1"):u'壹', ....}
unicodestr = u"314"
print unicodestr.translate(transtable)

相关问题 更多 >