UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd5 in position 2: invalid continuation byte

问题描述

原代码

import os

cmd = "ping -n 1 192.168.127.253"
res = os.popen(cmd).read()
print(res)

通过pyinstaller打包后报错

在这里插入图片描述

百度翻译的解释

unicodedecode错误:“utf-8”编解码器无法在位置2:inva中解码字节0xd5

其实就是"UTF-8"无法解释"gbk"的代码,在不改变代码的情况暂时无法解决问题,有知道解决的小伙伴也可以与我分享一下

解决办法

目前方法只有更换函数 subprocess 解决,具体这个函数更多的使用方法大家都去百度了解

import subprocess

cmd = "ping -n 1 192.168.127.253"
a = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
lines = a.stdout.readlines()
var = lines[2].decode("gbk")
print(var)
if var.strip() == "请求超时。":
    print(var)
else:
    if var.split(":")[1].strip() == "无法访问目标主机。":
        print(var)
    else:
        print("网络连接成功")

通过pyinstaller打包后来就不会报刚才的错误了,问题解决!


本人的经验分享,希望可以帮助到你们,如何不对的地方,可以评论留言,帮我指正一下,如果帮助了你,请给我点个赞吧

你可能感兴趣的:(UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd5 in position 2: invalid continuation byte)