Python中如何将字符串转换为字节(不改变每个字节)?
如何将包含十六进制转义的字符串转换为对应字节对象?
你的需求是将字符串s直接映射为字节对象b,其中每个字符对应一个字节。普通编码(如UTF-8)会对部分字符进行多字节编码,导致字节长度与原字符串长度不一致,而latin-1(ISO-8859-1)编码正好解决这个问题——它的编码范围覆盖0-255的所有字节值,每个Unicode码点(0-255)都会被直接转换成对应的单字节,完全匹配你的需求。
实现代码
s = "\x00\x01\x02\x00\xad\xaa" # 方法1:使用str.encode() b = s.encode('latin-1') # 方法2:直接用bytes构造函数 b = bytes(s, 'latin-1') print(b) # 输出: b'\x00\x01\x02\x00\xad\xaa'
原理说明
latin-1编码的特性是:每个0-255之间的Unicode字符,都对应唯一的一个字节,字节值等于字符的Unicode码点。这意味着字符串中的\x00(码点0)会转成字节\x00,\xad(码点173)会转成字节\xad,完全保留原字符串的字节映射关系,不会出现编码转换后的内容或长度变化。
内容的提问来源于stack exchange,提问作者1234
相关产品推荐
相关产品推荐

