UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc3 in position 0: invalid continua

Posted apff

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc3 in position 0: invalid continua相关的知识,希望对你有一定的参考价值。

需求:python如何实现普通用户登录服务器后切换到root用户再执行命令 

解决参考:

代码:

def verification_ssh(host,username,password,port,root_pwd,cmd):
    s=paramiko.SSHClient()
    s.load_system_host_keys()
    s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    s.connect(hostname = host,port=int(port),username=username, password=password)

    if username != root:
        ssh = s.invoke_shell()
        time.sleep(0.1)
        ssh.send( export LANG=en_US.UTF-8 
) #解决错误的关键,编码问题
        ssh.send(su - 
)

        buff = ""
        while not buff.endswith(Password: ): #true
            resp = ssh.recv(9999)
            print(resp)
            buff +=resp.decode(utf8)

        print(hhhhh)
        print(buff)

        ssh.send(root_pwd)
        ssh.send(
)

        buff = ""
        # n = 0
        while not buff.endswith(# ):
            # n += 1
            resp = ssh.recv(9999)
            print(resp)
            buff +=resp.decode(utf8)
            # print(n)
            # if n >=3:
            #     break



        # print(buff)

        ssh.send(sh /tmp/check/101.sh) #放入要执行的命令
        ssh.send(
)
        buff = ‘‘
        # m = 0
        while not buff.endswith(# ):
            resp = ssh.recv(9999).decode()
            buff +=resp
            # m += 1
            # print(m)

        result  = buff
        # print(type(result))
        # print(result)
        s.close()

if __name__ == "__main__":
    verification_ssh(172.25.240.164, cattsoft, [email protected], 52222, Huawei12#$, id)

遇到问题:

     技术分享图片

思路:经过检查发现这个是中文字符集和英文字符集返回密码格式不同导致的,在代码中加入:ssh.send(‘ export LANG=en_US.UTF-8 ‘),即可解决上述问题

技术分享图片

技术分享图片

 因为中文和英文字符集转换不同,所以导致报错。

 

以上是关于UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc3 in position 0: invalid continua的主要内容,如果未能解决你的问题,请参考以下文章

python编码问题:UnicodeDecodeError: 'gbk' codec can't decode

python UnicodeDecodeError: 'ascii' codec can't decode byte ...

UnicodeDecodeError: 'ascii' codec can't decode byte错误解决方案

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xcd

UnicodeDecodeError: 'utf-8' codec can't decode byte..问题

UnicodeDecodeError: 'utf-8' codec can't decode byte..问题