如果有一个UTF-8字符串如下:
mystring = "işğüı"
在Python(2.5)中,是否可能获取其(内存中)大小(以字节为单位)?
如果有一个UTF-8字符串如下:
mystring = "işğüı"
在Python(2.5)中,是否可能获取其(内存中)大小(以字节为单位)?
>>> 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
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
在处理字符串时,最好将所有内容都保持为Unicode编码,在与外界通信时再进行编码转换。在这种情况下,您可以使用 len(myunicode.encode('utf-8'))
来查找编码后的大小。
len(bytes(u'计算机', 'utf8')) # 返回 9
而不是 len(u'计算机') # 返回 3
。 - Karsten
len(mystring)
时,我得到了9。 - NullUserExceptionmystring = u"işğüı"
。否则,它会变成'i\xc5\x9f\xc4\x9f\xc3\xbc\xc4\xb1'
。 - aaronasterlingmystring[2:6]
。我只是把它放在这里,因为我也感到惊讶。 - Muhammad Alkarouri