82

Python API で、単一文字の Unicode コード ポイントを抽出する方法はありますか?

編集:問題が発生した場合に備えて、私はPython 2.7を使用しています。

4

5 に答える 5

86

私があなたの質問を正しく理解していれば、あなたはこれを行うことができます。

>>> s='㈲'
>>> s.encode("unicode_escape")
b'\\u3232'

Unicode エスケープ コードをソース文字列として表示します。

于 2011-09-03T04:39:09.717 に答える
67
>>> ord(u"ć")
263
>>> u"café"[2]
u'f'
>>> u"café"[3]
u'\xe9'
>>> for c in u"café":
...     print repr(c), ord(c)
... 
u'c' 99
u'a' 97
u'f' 102
u'\xe9' 233
于 2011-09-03T04:28:20.683 に答える
12

通常ord(character)は、文字のコード ポイントを見つけるだけです。ただし、完全を期すために、Unicode Supplementary Multilingual Plane のワイド文字は、ナロー Python ビルドではサロゲート ペア (つまり、2 つのコード単位) として表されるため、その場合は、この小さな回避策を実行する必要がよくありました。

def get_wide_ordinal(char):
    if len(char) != 2:
        return ord(char)
    return 0x10000 + (ord(char[0]) - 0xD800) * 0x400 + (ord(char[1]) - 0xDC00)

ただし、これはほとんどのアプリケーションではまれであるため、通常はord().

于 2011-09-03T04:55:06.653 に答える