在python 3中将字节解码为字符串或ASCII的问题

凯尔

我在使用python 3解码接收到的字节时遇到问题。我正在通过串行连接控制arduino,并使用以下代码读取它:

import serial
arduino = serial.Serial('/dev/ttyACM0', baudrate=9600, timeout=20)
print(arduino.isOpen())
myData = arduino.readline()
print(myData)

我得到的结果看起来像b'\xe1\x02\xc1\x032\x82\x83\x10\x83\xb2\x80\xb0\x92\x0b\xa0'或,b'\xe1\x02"\xe1\x00\x83\x92\x810\x82\xb2\x82\x91\xb2\n'并尝试通过通常的方式将其解码,但myData.decode('utf-8')我得到了错误UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb2 in position 1: invalid start byte我尝试了其他解码(ASCII,cp437,十六进制,utf-16),但始终遇到相同的错误。

您有什么建议,我该如何解码接收到的字节或arduino需要进行哪些解码?我已经尝试过使用for循环对其进行逐段解码,但是我始终会遇到相同的错误消息。

有没有一种通用的方法可以避免解码问题或找出我必须使用哪种解码方式?

提前致谢。

戴维

正如@jsbueno在评论中所说,这不是解码问题,可能是因为接收到的字节数据实际上是二进制数据。从文件读取二进制数据(字节)时,我遇到了非常相似的问题。

这里有2个选项,第一个是struct模块:

import struct
a = open("somedata.img", "rb")
b = a.read(2)  
file_size, = struct.unpack("i",a.read(4))

以这种方式编写代码会生成一个元组,因此要获取整数,只需使用 struct.unpack('i', a.read(4))[0]

如果要将数据存储在numpy数组中,我使用的另一种方法是:

import numpy as np

f = open("somefile.img", "r")
a = np.fromfile(f, dtype=np.uint32)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

解码 txt 文件中的字节字符串 - Python 3

来自分类Dev

如何在python2中将utf-8字节数组解码为字符串?

来自分类Dev

当您使用struct模块在python中将2位字符的字符串中的16位ASCII数据解码为整数时,如何将其解码?

来自分类Dev

为什么Pysnmp在Python 3中将字节保存为字符串

来自分类Dev

如何在python 3中将字节转换为字符串?

来自分类Dev

Python - 以字节为单位解码字符串

来自分类Dev

如何在python 2.7中将字符串转换为字节字符串

来自分类Dev

问题在Python中将字节转换为字符串

来自分类Dev

在Python 3中将整数的字符串表示形式编码为base64

来自分类Dev

在python 3中将字符串打印为整数

来自分类Dev

如何在python中解码ascii结合字符串

来自分类Dev

如何在Python 3中将二进制字符串转换为类似字节的对象?

来自分类Dev

python 会自动解码 ASCII 和 UTF-8 字节字符串吗?

来自分类Dev

如何在Python 2中将字符串转换为字节

来自分类Dev

Python中字符串的一些解码问题

来自分类Dev

在python 3中读取带有非ASCII字符的字符串时出现问题

来自分类Dev

Python 将 3 个字符串误解为 UTF-8 连续字节

来自分类Dev

将可能包含非ASCII Unicode字符的PowerShell输出解码为Python字符串

来自分类Dev

Python 2和3中的字符串均以字节为单位

来自分类Dev

将字节从for循环转换为python中的字符串

来自分类Dev

将字符串与在Python 2和3中均可使用的字节进行比较

来自分类Dev

python 2.7 vs 3 编码解码字节字符串

来自分类Dev

如何在Python中将具有非ASCII字节的字节数组转换为字符串?

来自分类Dev

在python中将诸如“AQAAAAAAgFbAAAAAAAAAAAAAAAAAAEBgQA==”之类的字符串解码/编码为130,-90,0

来自分类Dev

在 Python 中将十六进制和 ASCII 字符解析为字符串

来自分类Dev

有没有办法在Python中解码字符串对象内的字节?

来自分类Dev

如何在python中将字符串写为unicode字节?

来自分类Dev

在Python中将字符串截断为特定数量的字节

来自分类Dev

Python 3-如果字符串仅包含ASCII,它等于字符串的字节数吗?

Related 相关文章

  1. 1

    解码 txt 文件中的字节字符串 - Python 3

  2. 2

    如何在python2中将utf-8字节数组解码为字符串?

  3. 3

    当您使用struct模块在python中将2位字符的字符串中的16位ASCII数据解码为整数时,如何将其解码?

  4. 4

    为什么Pysnmp在Python 3中将字节保存为字符串

  5. 5

    如何在python 3中将字节转换为字符串?

  6. 6

    Python - 以字节为单位解码字符串

  7. 7

    如何在python 2.7中将字符串转换为字节字符串

  8. 8

    问题在Python中将字节转换为字符串

  9. 9

    在Python 3中将整数的字符串表示形式编码为base64

  10. 10

    在python 3中将字符串打印为整数

  11. 11

    如何在python中解码ascii结合字符串

  12. 12

    如何在Python 3中将二进制字符串转换为类似字节的对象?

  13. 13

    python 会自动解码 ASCII 和 UTF-8 字节字符串吗?

  14. 14

    如何在Python 2中将字符串转换为字节

  15. 15

    Python中字符串的一些解码问题

  16. 16

    在python 3中读取带有非ASCII字符的字符串时出现问题

  17. 17

    Python 将 3 个字符串误解为 UTF-8 连续字节

  18. 18

    将可能包含非ASCII Unicode字符的PowerShell输出解码为Python字符串

  19. 19

    Python 2和3中的字符串均以字节为单位

  20. 20

    将字节从for循环转换为python中的字符串

  21. 21

    将字符串与在Python 2和3中均可使用的字节进行比较

  22. 22

    python 2.7 vs 3 编码解码字节字符串

  23. 23

    如何在Python中将具有非ASCII字节的字节数组转换为字符串?

  24. 24

    在python中将诸如“AQAAAAAAgFbAAAAAAAAAAAAAAAAAAEBgQA==”之类的字符串解码/编码为130,-90,0

  25. 25

    在 Python 中将十六进制和 ASCII 字符解析为字符串

  26. 26

    有没有办法在Python中解码字符串对象内的字节?

  27. 27

    如何在python中将字符串写为unicode字节?

  28. 28

    在Python中将字符串截断为特定数量的字节

  29. 29

    Python 3-如果字符串仅包含ASCII,它等于字符串的字节数吗?

热门标签

归档