Python 3 では、すべての文字列は Unicode 文字のシーケンスです。UTF-8 でエンコードされた Python 文字列や、CP-1252 としてエンコードされた Python 文字列などはありません。「この文字列はUTF-8ですか?」は無効な質問です。UTF-8 は、文字を一連のバイトとしてエンコードする方法です。文字列を特定の文字エンコーディングのバイト シーケンスに変換したい場合は、Python 3 が役に立ちます。一連のバイトを取得してそれを文字列に変換したい場合、Python 3 はそれにも役立ちます。バイトは文字ではありません。バイトはバイトです。文字は抽象化です。文字列は、これらの抽象化のシーケンスです。
作者の言ってる意味がわからない。
私が言うときs = 'hello'
、どのようにs
内部的にエンコードされますか? もちろん、いくつかのエンコーディングを使用する必要があります。彼は、すべての文字列は Unicode 文字のシーケンスであると言います。しかし、各文字は何バイトですか? この文字列は UTF-8 ですか? なぜ彼は言うのですか:「UTF-8でエンコードされたPython文字列などはありません」.
Python には、Python の「文字列」を、そのエンコーディングを使用する別のソフトウェアで読み取ることができる一連のバイトに変換する機能があることを理解しています。また、一連のバイトを Python の「文字列」に変換することもサポートしています。この「文字列」の内部表現は、私を混乱させるものです。