有这样的UTF-8字符串:
mystring = "i??ü?"
Run Code Online (Sandbox Code Playgroud)
是否可以使用Python(2.5)以字节为单位获取其(内存中)大小?
假设你的意思是UTF-8字节的数量(而不是Python存储对象所需的额外字节数),它与任何其他字符串的长度相同.Python 2.x中的字符串文字是一串编码字节,而不是Unicode字符.
字节字符串:
>>> mystring = "i??ü?"
>>> print "length of {0} is {1}".format(repr(mystring), len(mystring))
length of 'i\xc5\x9f\xc4\x9f\xc3\xbc\xc4\xb1' is 9
Run Code Online (Sandbox Code Playgroud)
Unicode字符串:
>>> myunicode = u"i??ü?"
>>> print "length of {0} is {1}".format(repr(myunicode), len(myunicode))
length of u'i\u015f\u011f\xfc\u0131' is 5
Run Code Online (Sandbox Code Playgroud)
最好将所有字符串保存在Unicode中,并且只在与外界通信时进行编码.在这种情况下,您可以使用它len(myunicode.encode('utf-8'))来查找编码后的大小.