python decode报错_python subprocess decode报错?

2522019a9e5a3f559f8eae8f01764a82.png

慕仰8121524

老铁, 和subprocess没啥关系, 其实是一个bytes类转换为str的编码问题你试试:>>> print(output.decode('gbk'))默认服务器:  dns.xxx.xxx.cn

Address:  xxx.xxx.xxx.xxx> > 服务器:  dns.xxx.xxx.cnAddress:  xxx.xxx.xxx.xxx

python.org    MX preference = xx, mail exchanger = mail.python.org

python.org    nameserver = nsx.pxx.dynect.net

python.org    nameserver = nsx.pxx.dynect.net

python.org    nameserver = nsx.pxx.dynect.net

python.org    nameserver = nsx.pxx.dynect.net>这个字符串里面有中文而此句output, err = p.communicate(b'set q=mx\npython.org\nexit\n')中, output的编码是GBK所以不能用utf-8来解码这个其实是gbk编码和utf-8编码产生了冲突的问题虽说都支持中文, 但是给中文编码的顺序不同, 我举个例子吧:>>> '我'.encode()    

b'\xe6\x88\x91'>>> '我'.encode('gbk')

b'\xce\xd2'可以参考这位大佬的文章:https://www.cnblogs.com/gavin...祝你好运!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值