2015-07-01 14 views
19

sto cercando di una corsa questo pezzo di codice, e continua a dare un errore che dice "Argomento stringa senza una codifica"Python argomento stringa senza una codifica

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

Qualsiasi aiuto?

+0

Vuoi ottenere: '(ota_packet + contenuti [CURRENT_POS: final_pos] + '\ 0') codificare ('utf-8')'.? – jfs

risposta

35

Si passa in un oggetto stringa in un bytearray():

bytearray(content[current_pos:(final_pos)]) 

È necessario fornire un argomento di codifica (secondo argomento) in modo che può essere codificato in byte.

Ad esempio, è possibile codificare in UTF-8:

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

Dal bytearray() documentation:

Il parametro opzionale fonte può essere utilizzato per inizializzare l'array in pochi diverso modi:

  • Se si tratta di una stringa, è necessario fornire anche lo codifica (e facoltativamente, errori) parametri; bytearray() quindi converte la stringa in byte utilizzando str.encode().