Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 将python2字节/字符串编码转换为python3_Python 2.7_Python 3.x_Byte_Pyserial - Fatal编程技术网

Python 2.7 将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”。解

我正在通过串口进行通信,目前正在使用python2代码,我想将其转换为python3。我想确保通过线路发送的字节是相同的,但我在验证情况是否属实时遇到了问题

在原始代码中,命令的发送方式如下:

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()