我正在尝试将来自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

我想知道为什么会发生这样的事,我该如何解决。提前谢谢。

最佳答案

当您将字符串“\xB2\xB2\xB3\xB4\x01”提交到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()

关于python - 如何在python 2.7中将字符串转换为字节字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35558070/

10-11 04:07