str と bytes

python 3 からは、文字列は UNICODE として扱われ、日本語なども扱えます。 でも、ASCII コードの時と違って、strbytes がほぼ一致するということがなくなりました。

  • str から bytes の変換は encode() で可能。encoding を指定できるが、省略時は utf-8
  • bytes から str への変換は decode() で可能。encoding を指定できるが、省略時は utf-8
    • str(bytes)bytes から str への変換可能
s = '太郎'
b = s.encode()
print(b)  # b'\xe5\xa4\xaa\xe9\x83\x8e'
print(str(b)) # b'\xe5\xa4\xaa\xe9\x83\x8e'
print(str(b, 'utf-8'))  # 太郎
print(b.decode())       # 太郎
print(b.decode('utf-8')) # 太郎

Read more