Python 2.7 将python2字节/字符串编码转换为python3
我正在通过串口进行通信,目前正在使用python2代码,我想将其转换为python3。我想确保通过线路发送的字节是相同的,但我在验证情况是否属实时遇到了问题 在原始代码中,命令的发送方式如下:Python 2.7 将python2字节/字符串编码转换为python3,python-2.7,python-3.x,byte,pyserial,Python 2.7,Python 3.x,Byte,Pyserial,我正在通过串口进行通信,目前正在使用python2代码,我想将其转换为python3。我想确保通过线路发送的字节是相同的,但我在验证情况是否属实时遇到了问题 在原始代码中,命令的发送方式如下: serial.Serial().write("\xaa\xb4" + chr(2)) 如果我在python2中打印“\xaa\xb4”,我会得到以下结果:��. 如果我在python3中打印(“\xaa\xb4”),我会得到以下结果:ª´ 编码和解码似乎也截然相反: Python2:打印“\xaa”。解
serial.Serial().write("\xaa\xb4" + chr(2))
如果我在python2中打印“\xaa\xb4”
,我会得到以下结果:��.如果我在python3中打印(“\xaa\xb4”),我会得到以下结果:ª´ 编码和解码似乎也截然相反: Python2:
打印“\xaa”。解码('latin-1')
->ªPython3:
print(“\xaa.encode('latin-1'))
->b'\xaa'
简而言之,我需要在python3中的
serial.write()
中发送什么,以确保1
s和0
s的序列完全相同?使用bytes
序列
ser.write(b'\xaa\xb4')
但是如果我这样构造命令:
a='\xaa'
,我将如何将其传递给write()
<代码>打印(字节(a,'utf8'))->b'\xc2\xaa'通常您不会;首先要使用字节
。如果出于某种原因,您有文本,并且需要将前256个字符转换为字节,那么您可以使用拉丁语-1
编解码器。是的,谢谢。使用b'\xaa'
等进行构造使一切变得更容易。我意识到我的问题在于chr()
和ord()
。