【问题标题】:Python 3: How to convert a bytearray to an ASCII stringPython 3:如何将字节数组转换为 ASCII 字符串
【发布时间】:2014-10-15 05:19:57
【问题描述】:

我有以下bytearray

bytearray(b'S\x00t\x00a\x00n\x00d\x00a\x00r\x00d\x00F\x00i\x00r\x00m\x00a\x00t\x00a\x00.\x00i\x00n\x00o\x00')

它应该拼出StandardFirmata.ino,但是我不知道如何解码它。

这是我尝试过的:

print(str(board.sysex_list)) #Appears to just return a string that looks identical
print(board.sysex_list.decode()) # Returns just S

有没有简单的方法来做到这一点?

【问题讨论】:

    标签: python python-3.x bytearray


    【解决方案1】:

    编码错误。

    3>> bytearray(b'S\x00t\x00a\x00n\x00d\x00a\x00r\x00d\x00F\x00i\x00r\x00m\x00a\x00t\x00a\x00.\x00i\x00n\x00o\x00').decode('utf-16le')
    'StandardFirmata.ino'
    

    但这不是 ASCII。

    【讨论】:

    • 关于这个神秘的bytearray 对象有什么好的资源吗?文档没有太大帮助。对我来说,它看起来就像一串字节,在索引时返回 ints....
    • 那是因为它就是:一个字节序列。如果您想将其转换为文本,则需要使用适当的编码对其进行解码。
    【解决方案2】:

    问题是我没有指定解码。我所要做的就是将decode 更改为decode('utf-16-le')

    【讨论】:

      猜你喜欢
      • 2011-08-06
      • 2013-01-31
      • 1970-01-01
      • 2011-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-17
      相关资源
      最近更新 更多