Python2 では、文字列は国際文字セットと Unicode エンコーディングを完全にはサポートできません。この制限を回避するために、Python 2 では Unicode データに別の文字列型を使用します。 Unicode 文字列リテラルを入力するには、最初の引用符の前に「u」を追加します。 Python 2 の通常の文字列は、実際にはエンコードされた (非 Unicode) バイト文字列です。 Python3 では、このプレフィックス文字を追加する必要はありません。追加しないと、すべての文字列がデフォルトですでに Unicode エンコードされているため、構文エラーになります。
ただし、python3 にはもう 1 種類の文字列があります (推奨学習: Python ビデオ チュートリアル )
type(b'132') => byte型
そしてPython2 でこのように書くとエラーが報告されます
したがって、明らかに、デコードとエンコードの使用には大きな違いがあります
Python2 のデコードは、str 型を Unicode 型に変換します
python3でのデコードはbyte型をstr型に変換することです
python3を例にします:
src = ‘你好世界’
この時のstrはstr型なのでbyte型に変換する必要がある場合
src = src.encode('utf-8')
この時点では、src はすでにバイト型です。これを str に変換し直したい場合は、直接使用してください:
src = src .decode()
さらに、open Python3 の関数はエンコーディング パラメーターを追加します。デフォルトは UTF-8 です。つまり、開かれたファイル ハンドルが読み書きされるときに、Unicode 形式を含む str 文字のみが受信されます。
この時点でバイナリ ファイルを渡すと、次のようなエラーが報告されます。
with open('a.bin', 'w') as f: f.write('xxx')
バイナリ ファイルの読み取りおよび書き込みを行う場合は、開く方法を指定する必要があります。 'wb' または 'rb'
さらに、Web ページをクロールするときに Web ページが正しく表示されない場合は、コンテンツをトランスコードする必要があります。
Python 関連の技術記事の詳細については、Python チュートリアル 列にアクセスして学習してください。
以上がpython2 文字列と python3 文字列の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。