在Python 3中通过套接字发送字节时出现UnicodeDecodeError

时间:2018-06-26 06:03:18

标签: python python-3.x

我必须使用带有子进程的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)

当然,不必将字节转换为要发送的字节,因为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

有人知道如何解决吗?

0 个答案:

没有答案