web-dev-qa-db-ja.com

Pythonエンコードなしの文字列引数

このコードを実行しようとしていますが、「エンコーディングなしの文字列引数」というエラーが表示され続けます

ota_packet = ota_packet.encode('utf-8') + bytearray(content[current_pos:(final_pos)]) + '\0'.encode('utf-8')

助けがありますか?

39
lonely

文字列オブジェクトをbytearray()に渡します:

bytearray(content[current_pos:(final_pos)])

エンコード引数(2番目の引数)を指定して、バイトにエンコードできるようにする必要があります。

たとえば、UTF-8にエンコードできます。

bytearray(content[current_pos:(final_pos)], 'utf8')

bytearray() documentation から:

オプションのsourceパラメーターを使用して、いくつかの異なる方法で配列を初期化できます。

  • 文字列の場合、encoding(およびオプションでerrors) パラメーター; bytearray()は、str.encode()を使用して文字列をバイトに変換します。
61
Martijn Pieters