Pythonでは、bytes型とstr型の間で相互に変換することが可能です。これは、データのエンコーディングやデコーディングに使用されます。

bytes型とstr型の変換

Pythonのstr.encode()メソッドを使用すると、str型のデータをbytes型にエンコードすることができます。逆に、bytes.decode()メソッドを使用すると、bytes型のデータをstr型にデコードすることができます。

s = 'hello'
b = s.encode()  # b'hello'

s2 = b.decode()  # 'hello'

エンコーディングの指定

encode()およびdecode()メソッドでは、エンコーディングを指定することが可能です。デフォルトのエンコーディングはutf-8です。

s = 'こんにちは'
b = s.encode(encoding='utf-8')  # b'\xe3\x81\x93\xe3\x82\x93\xe3\x81\xab\xe3\x81\xa1\xe3\x81\xaf'

エラーハンドリング

不正なバイト列に遭遇した場合、デフォルトの挙動はエラーになります。しかし、errors='replace'を指定することで、代替文字に置き換えることが可能です。

b = b'\xff'
s = b.decode('utf-8', 'replace')  # '�'

以上、Pythonでbytes型とstr型の相互変換を行う方法について説明しました。これらの知識は、ファイルの読み書きやネットワーク通信など、さまざまな場面で役立つでしょう。

投稿者 admin

コメントを残す

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