没有编码的Python字符串参数

时间:2015-07-01 12:24:56

标签: python python-3.x encoding python-unicode

我试图运行这段代码,并且不断给出错误说“没有编码的字符串参数”

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

任何帮助?

2 个答案:

答案 0 :(得分:57)

您正在将字符串对象传递给bytearray()

bytearray(content[current_pos:(final_pos)])

您需要提供编码参数(第二个参数),以便可以将其编码为字节。

例如,您可以将其编码为UTF-8:

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

来自bytearray() documentation

  

可选的 source 参数可用于以几种不同的方式初始化数组:

     
      
  • 如果是字符串,您还必须提供编码(以及可选的错误)参数; bytearray()然后使用str.encode()将字符串转换为字节。
  •   

答案 1 :(得分:0)

byteObject = b'\x18,\xa3\xf0A\x93*<bAd\x15K.A\xba'
print(byteObject)
print('-----------asbytearray----------')

print('-------As a string------------------')
o = base64.b64encode(bytes(str(byteObject), 'utf-8'))
print(o.decode("utf-8"))`enter code here`
print('--------Nonce as a string------------------')