我试图运行这段代码,但它不断给出一个错误,说"字符串参数没有编码"

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

有什么帮助吗?

推荐答案

将字符串对象传递给bytearray():

bytearray(content[current_pos:(final_pos)])

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

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

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

bytearray() documentation人中:

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

  • 如果是字符串,还必须给出encoding个(可选errors个)参数;bytearray()然后使用str.encode()将字符串转换为字节.

Python-3.x相关问答推荐

文件名中的文件打开和撇号

在BaseHTTPRequestHandler中填充和返回列表

如何将参数/值从测试方法传递给pytest的fixture函数?

基于另一个数据帧计算总和

如何计算累积几何平均数?

PyTest:尽管明确运行了测试,但是被标记为没有运行测试

三重奏:为什么频道被记录为使用async with,而不是with?

它们是否同样存储在python3的内存中?

Python3:是否可以将变量用作函数调用的一部分

使用gekko python的混合整数非线性规划

如何计算Pandas 列中每列唯一项目的出现次数?

如果原始字符串包含正斜杠,如何返回具有不同可能性的新字符串

多个返回函数的列表理解?

将字符串表示与使用整数值的枚举相关联?

Generic[T] 基类 - 如何从实例中获取 T 的类型?

具有两个或多个返回参数的函数注释

变量类型注解NameError不一致

为什么在 Python 3 中实例的 __dict__ 的大小要小得多?

如何创建一个永远在其上运行滚动协程的事件循环?

调用 Python doctest 时如何启用省略号?