2015-07-01 20 views
19

próbuję biegu Ten fragment kodu, a to wciąż daje błąd mówiąc „Argument String bez kodowania”Python ciąg argumentu bez kodowania

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

Każda pomoc?

+0

Chcesz dostać: '(ota_packet + content [CURRENT_POS: final_pos] + '\ 0') ('kodowania UTF-8')'.? – jfs

Odpowiedz

35

są przechodzącą w obiekcie strun do bytearray():

bytearray(content[current_pos:(final_pos)]) 

Musisz dostarczyć argument kodowania (drugi argument) tak, że może być kodowany do bajtów.

Na przykład, można zakodować go na UTF-8:

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

Z bytearray() documentation:

Opcjonalny źródło parametr może być używany do inicjalizacji tablicy w kilku różnych sposoby:

  • Jeśli jest to ciąg, należy również podać kodowania (i opcjonalnie, błędów) parametrów; bytearray() następnie konwertuje ciąg na bajty, używając str.encode().
Powiązane problemy