2016-03-25 13 views
3

Unicode charactersはPythonの3文字列の意味ですか?Pythonの文字列はUnicode文字です

は、Python 3.0以来、言語は「!Unicodeの岩」、「!Unicodeの石」を使用して作成した任意の文字列を意味し、 を のUnicode文字を含むstrのタイプを備え、またはトリプル引用符で囲まれた文字列の構文は次のように保存されています Unicode

from python doc。

文字列abcの場合、Pythonは[61,62,63]をメモリに保持していますか? (aはU + 0061です)

ユニコード文字はユニコードコードポイントを意味しますか?

+0

なぜ重要ですか? – hop

+0

ちょうど興味がありますか? :) – eugene

+0

@hopこれは、文字列をどのように扱う必要があるかを変更するためです。 –

答えて

0

ユニコード文字はユニコードコードポイントを意味しますか?

はい、いいえ。それは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 
関連する問題