1

まず、私はこれを持っています:

strSrc = '3.14'

そして、結果がこれであることを願っています:

strRst = '叁点壹肆'

Ps: 繁体字中国語の「3」は「叁」です。ここ:

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

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)
4

1 に答える 1

1

問題は、漢字 (漢字) が文字列に収まらないことです。

次のことを試してください。

transtable = { ord("0"):u'零', ord("1"):u'壹', ....}
unicodestr = u"314"
print unicodestr.translate(transtable)
于 2013-06-28T03:17:01.027 に答える