python-Django将数组html代码解码为可读文本

2024-09-27 18:00:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我收到一堆二进制数据,我希望它再次成为一个可读的字符串。你知道吗

# Get data length in bits
dataLen = headerLen + (payLoadLen * 8) - bytes.pos
if dataLen > 0:
        eventData = []
    for i in range(dataLen / 8):
        eventData.append(bytes.read(8).int)
    m.setEventData(eventData)
    logging.debug("[D] Event data: %s" % eventData)

会产生类似于:

[D]事件数据:[87,84,94,87,44,36, 70, 77, 83, 52, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44, 48, 44、48、44、48、44、48、44、48、44、48、44、48、13、10、87、84、94、87、44、36、70、77、83、49、44、48、44、48、44、48、44、48、44、48、44、48、44、48、44、48、44、48、44、48、44、48、44、48、44、48、44、48、44、48、44、48、44、48、44、48、44、48、44、44、48、44、48、44、48、48、44、48、48、48、48、48、48、48、48、48、48、48、48、48、48、13、10]

如果你看http://www.asciitable.com/,我知道这是正确的。第一个字符确实是WT^W,FMS。。。你知道吗

如何更改此代码以使日志记录具有更易读的字符串?你知道吗


Tags: 数据字符串inposdatagetifbytes
2条回答

您需要将代码转换为字符串,然后将这些字符连接在一起:

myString = ''.join(map(chr, eventData))

如果您很难理解上面的代码是什么,请看下面的代码-这是非常相似的。两个版本都使用^{}将每个数字ASCI代码转换为一个字符串,然后将字符串连接在一起。唯一的区别是,在前一个版本中,我用一个简单的for循环替换了^{}。你知道吗

characters = []
for code in eventData:
    characters.append(chr(code))
myString = ''.join(characters)

要解码字符,您需要使用chr内置。要将它们连接在一起,您需要使用join function from the string library。你知道吗

# Get data length in bits
dataLen = headerLen + (payLoadLen * 8) - bytes.pos
if dataLen > 0:
        eventData = []
    for i in range(dataLen / 8):
        eventData.append(bytes.read(8).int)
    m.setEventData(eventData)
    c = []
    for p in eventData:
        c.append(chr(p))
    out = "".join(c)
    logging.debug("[D] Event data pre: %s" % eventData)
    logging.debug("[D] Event data post: %s" % out)

相关问题 更多 >

    热门问题