python-3.x - 无法使用 python 显示有符号的无符号字节
问题描述
我有一个奇怪的问题!我用蓝牙串联了一个客户端/服务器 Python 代码,用于发送和接收字节帧(例如[0x73, 0x87, 0x02 ....]
:)
一切正常,发送接收效果很好!
问题是我的帧的显示,我注意到从0
to的字节127
被显示,但是 from 128
,它显示字节但它在后面添加一个C2
(194
),例如:[0x73, 0x7F, 0x87, 0x02, 0x80 ....]
== [115, 127, 135, 2, 128 ....]
in hex display I would have 73 7F C2 87 2 C2 80 ..
,我们会注意到他不知C2
从哪里添加了一个字节!
我想,既然是从128
!这是由于有符号(-128
到127
)/无符号(0
到255
)的问题。
有人对这个问题有任何迹象吗?
谢谢
解决方案
0xc2 和 0xc3 是在将 U+0080 和 U+00FF 之间的字符值编码为 UTF-8 时出现的字节值。传输端的某些东西正在尝试发送文本而不是字节,而中间的某些东西正在(正确地)在发送之前将文本转换为 UTF-8 字节。解决方法是首先发送字节而不是文本。