\

Pythonでは、バイト列と文字列の相互変換が頻繁に行われます。特に、バイト列をASCII文字列に変換する場合や、その逆の操作が必要となる場面は多いです。

バイト列と文字列の相互変換

Pythonでは、encodeメソッドとdecodeメソッドを使って、文字列とバイト列の相互変換を行うことができます。

'abcd'.encode()  # b'abcd'
b'abcd'.decode()  # 'abcd'

これらのメソッドのデフォルトのエンコーディングは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')  # '�'

バイト列の16進数表記

バイト列の16進数表記は、想定しない変換で文字を壊したときや、生のデータを目で確認するために使われます。

b'\x61\x62\x63\x64'.hex()  # '61626364'

以上、Pythonでバイト列と文字列の相互変換を行う方法について解説しました。これらの知識は、Pythonでのデータ処理において非常に重要です。ぜひ活用してみてください。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です