我正在尝试将从raw_input()获取的字符串转换为“字节串”。当我手动输入变量(在代码中)时,它可以正常工作,返回长度为5。然而,当我尝试使用raw_input()输入“字节串”时,它返回长度为20。
>>> x='\xB2\xB2\xB3\xB4\x01'
>>> len(x)
5
>>> x=raw_input()
\xB2\xB2\xB3\xB4\x01
>>> len(x)
20
我想知道为什么会出现这种情况,以及如何解决。谢谢您的帮助。
我正在尝试将从raw_input()获取的字符串转换为“字节串”。当我手动输入变量(在代码中)时,它可以正常工作,返回长度为5。然而,当我尝试使用raw_input()输入“字节串”时,它返回长度为20。
>>> x='\xB2\xB2\xB3\xB4\x01'
>>> len(x)
5
>>> x=raw_input()
\xB2\xB2\xB3\xB4\x01
>>> len(x)
20
我想知道为什么会出现这种情况,以及如何解决。谢谢您的帮助。
raw_input()
时,它会自动转义\
字符,因为它认为您是要将它们输入作为字符串的一部分。这导致字符串的表示形式读取如下:In [2]: x=raw_input()
\xB2\xB2\xB3\xB4\x01
In [3]: x
Out[3]: '\\xB2\\xB2\\xB3\\xB4\\x01'
In [4]: print x
\xB2\xB2\xB3\xB4\x01
raw_input()
中。
raw_input()
将您的输入视为文本['\', 'x', 'B', '2' ... ]
。在 Python 2.7 中,字符串和字节数组是同一种东西。 - Andreyx
相同的结果吗? - deceze