str と bytes
python 3 からは、文字列は UNICODE として扱われ、日本語なども扱えます。
でも、ASCII コードの時と違って、str
と bytes
がほぼ一致するということがなくなりました。
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')) # 太郎