公司网络特定网段能够ping通某监控服务器,在不想重新部署监控服务器的情况下利用python做个小工具,ping不通就报警。
发邮件的功能已经做出来,但是在ping检测的时候在windows下显示乱码。
我在mac下做个测试内容如下:
import subprocess
icmp_out = subprocess.Popen('ping 172.10.10.68',
shell=True,
stdout=subprocess.PIPE
)
while True:
line = icmp_out.stdout.readline().strip()
a = "测试"
print(line + a.encode("UTF-8")) #不能正常输出测试中文,显示 \\xe6\\xb5\\x8b\\xe8\\xaf\\x95
print(a) #能正常输出测试中文
在mac下的pycharm运行代码,显示如下:
b'64 bytes from 172.10.10.68: icmp_seq=0 ttl=64 time=0.060 msxe6xb5x8bxe8xafx95'
测试
我已经查找了好多subprocess中文乱码问题,但是都无法解决,比如encode('gb2312'),print(line.decode('cp936').encode('utf-8'))
都不行。是在没办法了。求大佬解惑!感谢!
打印没有解码的bytes怎么会有中文哇。。。