将输入转换为字符串

时间:2018-01-04 00:30:34

标签: python string encoding character-encoding encode

我正在使用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

1 个答案:

答案 0 :(得分:0)

我没有测试它有多远,但我找到了一个似乎有效的简单解决方案。通过使用bytes()函数,它以某种方式工作为字符串。我可以将它传递给有问题的lib。

感谢大家的帮助。欢呼声。