一个string有多less个字节

有一些函数会告诉我一个string在内存中占用了多less字节?

我需要设置一个套接字缓冲区的大小,以便一次传输整个string。

import sys sys.getsizeof(s) # getsizeof(object, default) -> int # Return the size of object in bytes. 

但实际上你需要知道它的代表长度,所以像len(s)这样的东西应该就足够了。

如果它是一个Python 2.x str ,请获取它的len 。 如果是Python 3.x str (或Python 2.x unicode ),首先使用您的首选编码( 'utf-8'是个不错的select)将其编码为bytes (或分别为str ),然后获取len编码的字节/ str对象。


例如,ASCII字符每个使用1个字节:

 >>> len("hello".encode("utf8")) 5 

而中国人使用3个字节:

 >>> len("你好".encode("utf8")) 6