How many bytes does a string have

后端 未结 2 2007
天涯浪人
天涯浪人 2020-12-13 08:25

Is there some function which will tell me how many bytes does a string occupy in memory?

I need to set a size of a socket buffer in order to transfer the whole strin

相关标签:
2条回答
  • 2020-12-13 08:58

    If it's a Python 2.x str, get its len. If it's a Python 3.x str (or a Python 2.x unicode), first encode to bytes (or a str, respectively) using your preferred encoding ('utf-8' is a good choice) and then get the len of the encoded bytes/str object.


    For example, ASCII characters use 1 byte each:

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

    whereas Chinese ones use 3 bytes each:

    >>> len("你好".encode("utf8"))
    6
    
    0 讨论(0)
  • 2020-12-13 09:05
    import sys
    sys.getsizeof(s)
    
    # getsizeof(object, default) -> int
    # Return the size of object in bytes.
    

    But actually you need to know its represented length, so something like len(s) should be enough.

    0 讨论(0)
提交回复
热议问题