Python には str オブジェクトと unicode オブジェクトという 2 つのタイプの文字列があり、どちらも文字のバイトエンコーディングを保存できますが、これらは異なるタイプです。これは非常に重要であり、エンコードとデコードがある理由です。 Python における
encode と decode の意味は、
encode
unicode -------------------------> str
unicode と表現できます。
デコード
のいくつかの一般的なメソッド:
str_string.decode('codec') はdecode str_string unicode_string に変換します。コーデックはソース str_string のエンコード方式です
unicode_string.encode('codec') は、unicode_string を str_string に変換します。コーデックはターゲット str_string のエンコード方式です
str_string.decode('from_codec' ).encode('to_codec ') は、異なるエンコーディングの str_string 間の変換を実現できます
例:
>>> t='Great Wall'
>>> t
'xb3xa4xb3xc7'
>>> t。 decode('gb2312') .encode('utf-8')
'xe9x95xbfxe5x9fx8e'
str_string.encode('codec') は、まずシステムのデフォルト コーデックを呼び出して str_string を unicode_string に変換し、次に encode パラメーター コーデックを使用して最終的な str_string に変換します。str_string.decode('sys_codec').encode('codec') と同等です。
unicode_string.decode('codec') は基本的に意味がありません。Unicode は Python で 1 つの Unicode エンコーディング、UTF16 または UTF32 (Python のコンパイル時にすでに決定されています) のみを使用し、エンコーディング変換の必要はありません。
注: デフォルトのコーデックは、サイトパッケージの下の sitecustomize.py ファイルで指定されます (例:
import sys
sys.setdefaultencoding('utf-8')