Pythonでは、文字列とバイト配列の相互変換が可能です。これは、encode
およびdecode
メソッドを使用して行います。
'abcd'.encode() # b'abcd'
b'abcd'.decode() # 'abcd'
これらのメソッドのデフォルトのエンコーディングはencoding='utf-8'
です。
'abcd'.encode(encoding='utf-8') # b'abcd'
b'abcd'.decode(encoding='utf-8') # 'abcd'
不正なバイト列に遭遇した場合、デフォルトの挙動はエラーになります。
b'\xff'.decode() # UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
代替文字に置き換える場合、errors='replace'
を指定します。
b'\xff'.decode('utf-8', 'replace') # '�'
また、Pythonではバイト配列の16進数表記も可能です。
b'\x61\x62\x63\x64'.hex() # '61626364'
以上のように、PythonではUnicodeとバイト配列の操作が容易に行えます。これにより、文字列のエンコーディングやデコーディング、バイト配列の操作などが可能となります。