1. ホーム
  2. python

[解決済み] Python : 文字列のサイズをバイト数で取得する

2022-11-30 21:11:07

質問

ネットワークで送信される文字列があります。私はそれが表現される総バイトをチェックする必要があります。

sys.getsizeof(string_name) は余分なバイトを返します。例えば sys.getsizeof("a") は22を返します。一方、1つの文字はpythonでは1バイトで表されます。これを見つけるための他の方法はありますか?

どのように解決するのですか?

文字列のバイト数が欲しい場合、この関数がかなり堅実にそれをやってくれるはずです。

def utf8len(s):
    return len(s.encode('utf-8'))

変な数字が出たのは、文字列がpythonの実際のオブジェクトであるという事実のために、文字列に他の情報の束がカプセル化されるからです。

文字列を'utf-8'にエンコードする私の解決策を見ると、's'オブジェクト(これは文字列です)に'encode'メソッドがありますから興味深いですね。まあ、どこかに保存する必要がありますよね?そのため、バイト数が通常より多くなっています。そのため、そのメソッドと他のいくつかのメソッドを含んでいます :).