【问题标题】:Trouble displaying signed unsigned bytes with python无法使用 python 显示有符号的无符号字节
【发布时间】:2018-07-09 09:26:46
【问题描述】:

我有一个奇怪的问题!我用蓝牙串联了一个客户端/服务器 Python 代码,用于发送和接收字节帧(例如:[0x73, 0x87, 0x02 ....]

一切正常,发送接收效果很好!

问题是我的帧的显示,我注意到从0127的字节被显示,但是从128,它显示字节但它添加了一个C2194)后面,例如:[0x73, 0x7F, 0x87, 0x02, 0x80 ....] == [115, 127, 135, 2, 128 ....] 在十六进制显示中我会有 73 7F C2 87 2 C2 80 .. ,我们会注意到他添加了一个字节 C2 不知从何而来!

我认为因为它来自128!这是由于签名(-128127)/未签名(0255)的问题。

有人知道这个问题吗?

谢谢

【问题讨论】:

    标签: python-3.x bluetooth byte frames


    【解决方案1】:

    0xc2 和 0xc3 是在将 U+0080 和 U+00FF 之间的字符值编码为 UTF-8 时出现的字节值。传输端的某些东西正在尝试发送文本而不是字节,而中间的某些东西是(正确)在发送之前将文本转换为 UTF-8 字节。解决方法是首先发送字节而不是文本。

    【讨论】:

    • 谢谢,实际上,在 Python3 下,我制作了 sock.send (chr (frame)) 并且通常它应该大喊大叫,因为 chr (i) 在发送“字节”时是“str”。如果他不抱怨,那是他把它变成了 utf-8:突然我通过 sock.send (bytes (frame)) 改变了我的代码
    猜你喜欢
    • 2018-05-25
    • 2014-12-06
    • 2017-10-01
    • 2011-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-15
    • 1970-01-01
    相关资源
    最近更新 更多