ユニコード文字はユニコードコードポイントを意味しますか?
はい、いいえ。それはPythonのバージョンとそれがどのように構築されたかによって異なります。
2.2から3.2までのバージョンでは、pythonはナローコードとワイドコードの両方のビルドをサポートしていました(PEP-261参照)。狭いビルドでは、Unicodeの範囲は、BMPに制限されます。この範囲外の
Python 3.2.6 (default, Feb 21 2016, 12:42:00)
[GCC 5.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> sys.maxunicode
65535
ので、文字がsurrogate pairとして表現する必要があります:PEP-0393の導入により
>>> s = ''
>>> ord(s)
128556
>>> len(s)
2
、狭いですビルドしますpython3ではサポートされなくなりました。したがって、1文字は常に1つのコードポイントに相当します。
Python 3.5.1 (default, Mar 3 2016, 09:29:07)
[GCC 5.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> sys.maxunicode
1114111
>>> s = ''
>>> ord(s)
128556
>>> len(s)
1
なぜ重要ですか? – hop
ちょうど興味がありますか? :) – eugene
@hopこれは、文字列をどのように扱う必要があるかを変更するためです。 –