首先,我要说的是:
strSrc = '3.14'我希望结果是:
strRst = '叁点壹肆'注:繁体中文中的数字'3‘是'叁’。在此:
0零1壹2贰3叁4肆5伍6陆7柒8捌9玖
我想用string.translate().把strSrc翻译成中文
我检查了string.translate() doc,上面写着:
,然后使用表翻译字符,该表必须是256个字符字符串。
那么,这是否意味着我应该使用string.translate()而不是来解决这个问题呢?
但它总是会出现编码问题,如下所示:
>>> 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)发布于 2013-06-28 03:17:01
问题是汉字不适合字符串。
尝试以下几点:
transtable = { ord("0"):u'零', ord("1"):u'壹', ....}
unicodestr = u"314"
print unicodestr.translate(transtable)https://stackoverflow.com/questions/17356573
复制相似问题