42

Pythonのバイト文字列とUnicode文字列の違いについて詳しく説明してください。私はこれを読みました

バイトコードは、単にソースコードをバイトの配列に変換したものです

Pythonには独自のコーディング/エンコーディング形式があるということですか?それとも、オペレーティングシステムの設定を使用していますか?理解できない。説明してもらえますか?ありがとうございました!

4

2 に答える 2

38

独自のエンコーディングを使用しない python はありません。アクセスできる任意のエンコーディングを使用し、指定します。a 内の文字は、str1 つの Unicode 文字を表します。ただし、256 文字を超える文字を表すために、個々の Unicode エンコードでは、1 文字あたり 1 バイト以上を使用して多くの文字を表します。bytearrayオブジェクトを使用すると、基になるバイトにアクセスできます。strオブジェクトにはencode、エンコーディングを表す文字列を受け取り、そのエンコーディングで文字列を表すオブジェクトを返すメソッドがありますbytearraybytearrayオブジェクトには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を読みました。

于 2012-04-08T04:52:04.783 に答える