我有一个要通过网络发送的字符串。我需要检查它所代表的总字节数。
sys.getsizeof(string_name)返回额外的字节。例如对于sys.getsizeof("a")return 22,而在python中一个字符仅以1个字节表示。还有其他方法可以找到这个吗?
我有一个要通过网络发送的字符串。我需要检查它所代表的总字节数。
sys.getsizeof(string_name)返回额外的字节。例如对于sys.getsizeof("a")return 22,而在python中一个字符仅以1个字节表示。还有其他方法可以找到这个吗?
Answers:
如果您想要一个字符串中的字节数,此函数应该为您做的很扎实。
def utf8len(s):
return len(s.encode('utf-8'))
您得到怪异数字的原因是,由于字符串是python中的实际对象,因此封装在字符串中还有许多其他信息。
有趣的是,如果您看一下我的将字符串编码为'utf-8'的解决方案,则's'对象(这是一个字符串)上有一个'encode'方法。好吧,它需要存储在某个地方吗?因此,高于正常的字节数。它包括该方法以及其他一些方法:)。
len('你'.encode('utf-8'))。