22

テスト目的で、中国語、ロシア語、または英語以外のさまざまな文字セットをフラットファイルに書き出そうとしています。Unicode 16 進値または 10 進値を対応する文字に出力する方法に行き詰まりました。

たとえば、Python では、ハード コードされた一連の文字абвгдежзийклを割り当てvalue = u"абвгдежзийкл"ても問題はありません。

ただし、変数に 1081 / 0439 のような単一の 10 進数または 16 進数が格納されていて、対応する実際の文字 (0x439 を出力するだけでなく) でそれを出力したい場合、どうすればよいでしょうか? 上記の Unicode の 10 進数/16 進数の値は を参照していйます。

4

4 に答える 4

34

Python 2 : 使用unichr():

>>> print(unichr(1081))
й

Python 3 : 使用chr():

>>> print(chr(1081))
й
于 2012-05-23T07:53:41.150 に答える
0

エラーが発生した場合:

ValueError: unichr() 引数が範囲外 (0x10000) (狭い Python ビルド)

を使用して 16 進値を変換しようとしunichrているときに、次のようなことを行うことでそのエラーを回避できます。

>>> n = int('0001f600', 16)
>>> s = '\\U{:0>8X}'.format(n)
>>> s
'\\U0001F600'
>>> binary = s.decode('unicode-escape')
>>> print(binary)

于 2017-12-08T22:37:34.047 に答える