我必须使用带有子进程的check_output方法的套接字来发送ipconfig命令的输出 . 这个过程在python 2.7中很容易,但在python 3中,一切都比较复杂,因为它显示了一个UnicodeDecodeError .

这是发送字节的代码:

import socket
import subprocess 

client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(("localhost",7500))


m = subprocess.check_output('ipconfig')
client.send(m)

当然,没有必要将字节转换为send,因为check_output的输出已经以字节格式传递值 .

但问题出现在接收器中,因为它不允许对其进行解码 .

接收数据的代码如下:

import socket


serv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
serv.bind(("localhost",7500))
serv.listen(1)

conex,direccion = serv.accept()
a = conex.recv(4096)
print(a.decode('utf-8'))

它向我显示以下错误:

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa2 in position 13: invalid start byte

有谁知道如何解决这个问题?