Pythonのバイト文字列とUnicode文字列の違いについて詳しく説明してください。私はこれを読みました:
バイトコードは、単にソースコードをバイトの配列に変換したものです
Pythonには独自のコーディング/エンコーディング形式があるということですか?それとも、オペレーティングシステムの設定を使用していますか?理解できない。説明してもらえますか?ありがとうございました!
独自のエンコーディングを使用しない python はありません。アクセスできる任意のエンコーディングを使用し、指定します。a 内の文字は、str
1 つの Unicode 文字を表します。ただし、256 文字を超える文字を表すために、個々の Unicode エンコードでは、1 文字あたり 1 バイト以上を使用して多くの文字を表します。bytearray
オブジェクトを使用すると、基になるバイトにアクセスできます。str
オブジェクトにはencode
、エンコーディングを表す文字列を受け取り、そのエンコーディングで文字列を表すオブジェクトを返すメソッドがありますbytearray
。bytearray
オブジェクトにはdecode
、エンコーディングを表す文字列を受け取り、指定されたエンコーディングでエンコードされた文字列としてstr
解釈した結果の を返すメソッドがあります。bytearray
これが例です。
>>> a = "αά".encode('utf-8')
>>> a
b'\xce\xb1\xce\xac'
>>> a.decode('utf-8')
'αά'
UTF-8 では、\xce、\xb1、\xce、および \xac の 4 バイトを使用して 2 つの文字を表していることがわかります。Ignacio Vazquez-Abrams が参照した Spolsky の記事の後、私はPython Unicode Howtoを読みました。