当前位置:   article > 正文

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

unicodedecodeerror: 'utf-8' codec can't decode byte 0xd5 in position 2: inva

问题描述

原代码

import os

cmd = "ping -n 1 192.168.127.253"
res = os.popen(cmd).read()
print(res)
  • 1
  • 2
  • 3
  • 4
  • 5

通过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("网络连接成功")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

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


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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/424193
推荐阅读
相关标签
  

闽ICP备14008679号