我是python的初学者,遇到过一章,内容如下:
在Python 3.X中,普通的str字符串处理Unicode文本(包括ASCII,这只是一种简单的Unicode);不同的字节字符串类型表示原始字节值(包括媒体和编码文本);
我理解什么是unicode文本,但是什么值是原始字节??
答案 0 :(得分:0)
原始字节可以是您想要的任何内容。单个字节限制为0-255(十六进制00-FF),因此程序必须将多个字节解释为有意义的内容。
给定字节串b'\x41\x42\x43\x44'
,这可能是一个小端整数:
>>> int.from_bytes(raw,'little')
1145258561
>>> hex(int.from_bytes(raw,'little'))
'0x44434241'
或大结尾整数:
>>> hex(int.from_bytes(raw,'big'))
'0x41424344'
或UTF-8编码的Unicode字符串:
>>> raw.decode('utf8')
'ABCD'
或两个小端16位无符号整数:
>>> struct.unpack('HH',raw)
(16961, 17475)
>>> list(map(hex,struct.unpack('HH',raw)))
['0x4241', '0x4443']
它只是数据。由程序决定数据的含义。
字节字符串可以通过TCP套接字传输或读取或写入文件。 Unicode文本不能。必须先将其编码为字节。