2015-07-01 13 views
19

Am cố gắng để chạy đoạn mã này, và nó vẫn tiếp tục đưa ra một lỗi nói rằng "Chuỗi luận mà không có một mã hóa"Python chuỗi lập luận mà không có một mã hóa

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

Bất kỳ sự giúp đỡ?

+0

Bạn có muốn nhận: '(ota_packet + content [current_pos: final_pos] + '\ 0'). Encode ('utf-8')'? – jfs

Trả lời

35

Bạn đang đi trong một đối tượng chuỗi để một bytearray():

bytearray(content[current_pos:(final_pos)]) 

Bạn sẽ cần phải cung cấp một cuộc tranh cãi mã hóa (số thứ hai) để nó có thể được mã hóa ra byte.

Ví dụ, bạn có thể mã hóa nó sang UTF-8:

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

Từ bytearray() documentation:

Các tùy chọn tham số nguồn thể được sử dụng để khởi tạo mảng trong một vài khác nhau cách:

  • Nếu đó là chuỗi, bạn cũng phải cung cấp cho mã hóa (và tùy chọn, lỗi) thông số; bytearray() sau đó chuyển đổi chuỗi thành byte bằng cách sử dụng str.encode().
Các vấn đề liên quan