我正在使用https://github.com/cmcqueen/cobs-python中提供的lib来确保我可以通过串行线路发送数据。 但是,这个lib需要一个字符串作为输入,它可以是任何东西(文本文件,图像等......)。由于我使用的是没有任何特殊功能的串行线路,因此无需担心触发某些事件的特殊字符。
如果可以,我会以原始模式发送图像,因为数据如何传递到另一端并不重要,但我需要用这个lib对其进行编码。
我尝试了以下内容:
data = open('img.jpg', 'wb')
cobs_packet = cobs.encode(''.join(data).encode('utf-8'))
这给了我以下错误:
>>> UnicodeDecodeError: 'ascii' codec can't decode byte 0xff in position 0: ordinal not in range(128)
问题是,如果我使用不同的编码类型,数据长度会发生变化,而这种情况不会发生在我正在尝试做的事情上。
是否有任何方法可以简单地将输入转换为字符串?
编辑:我正在使用python版本2.7
答案 0 :(得分:0)
我没有测试它有多远,但我找到了一个似乎有效的简单解决方案。通过使用bytes()函数,它以某种方式工作为字符串。我可以将它传递给有问题的lib。
感谢大家的帮助。欢呼声。