このコードを実行しようとしていますが、「エンコーディングなしの文字列引数」というエラーが表示され続けます
ota_packet = ota_packet.encode('utf-8') + bytearray(content[current_pos:(final_pos)]) + '\0'.encode('utf-8')
助けがありますか?
文字列オブジェクトをbytearray()
に渡します:
bytearray(content[current_pos:(final_pos)])
エンコード引数(2番目の引数)を指定して、バイトにエンコードできるようにする必要があります。
たとえば、UTF-8にエンコードできます。
bytearray(content[current_pos:(final_pos)], 'utf8')
オプションのsourceパラメーターを使用して、いくつかの異なる方法で配列を初期化できます。
- 文字列の場合、encoding(およびオプションでerrors) パラメーター;
bytearray()
は、str.encode()
を使用して文字列をバイトに変換します。