【发布时间】:2012-09-15 18:37:13
【问题描述】:
我正在使用 Twisted 从套接字接收数据。 我的协议类继承自 Protocol。
由于 Python 2.* 中没有字节类型,因此接收数据的类型为 str。 当然, len (data) 给了我字符串的长度,但我怎么知道 收到的字节数?没有 sizeof 或类似的东西允许 我知道字节数吗? 还是我应该考虑无论平台如何,字节数都是 2 * len (data) ?
提前致谢
【问题讨论】:
-
你为什么假设
2*len(data)而不是1*len(data)? -
因为我认为一个 char 被编码为两个字节。如果不是这样,它对我来说是完美的
-
2.x str/3.x 字节的全部意义在于它是字节的集合。字节数始终为 len(data)。使用 2.x unicode/3.x str,它是字符的集合;这些是 2 个字节、4 个、有时 2-有时 4 还是其他什么都无关紧要,因为无论如何都无法直接访问这些字节。
-
PS,2.x(更高版本)中有字节类型;它只是 str 的同义词,但它存在,并且与 3.x 中的字节几乎相同。