【发布时间】:2015-04-26 22:51:53
【问题描述】:
所以我正在编写一些代码用于与 pySerial 的硬件进行一些通信,并且我使用的是 python 2.7.7,一切正常,我切换到 python 3.4,因为安装 GUI“框架”时出现问题。
所以我遇到的问题是我必须对发送到 COM 端口的字符串进行编码和解码,而我在 Python 2.7.7 上不需要
这是字符串,我知道十六进制值 81 不是 ascii,但我需要按照在 python 2.7.7 中发送的方式发送字符串。
str = '\x1B\x81'
当我打印 str 我得到这个:
b'\x1b\xc2\x81'
我假设 \xc2 是我的 \x81 的一些特殊 unicode 字符,我知道 \x 是十六进制的转义字符,我不太确定 Python 2.7.7 如何将字符串写入串行端口。
这行:
ser.write('\x1B\x81')
向串口发送二进制文件?有点像这样:
ser.write('0001 1011 1000 0001')
如果我发送这个:
ser.write('\x1B\x81')
对于使用 Python 3 的硬件,硬件只是挂起并且什么都不做,但在 Python 2.7 中它可以工作。
【问题讨论】:
-
你试过像
u'\x1B\x81'这样将字符串二进制化吗?
标签: python string unicode decode encode