Python3 telnetlib write()问题

Python3 telnetlib write()问题,python,python-3.x,character-encoding,vxworks,telnetlib,Python,Python 3.x,Character Encoding,Vxworks,Telnetlib,我在使用telnet通过VXWorks机器发送字节字符串时遇到问题。我尝试执行以下登录示例: import telnetlib tn = telnetlib.Telnet("192.168.45.61", port=23, timeout=5) login = "administrator" print(tn.read_until(b'login:').decode('ascii')) tn.write(login.encode('ascii') + b

我在使用telnet通过VXWorks机器发送字节字符串时遇到问题。我尝试执行以下登录示例:

import telnetlib

tn = telnetlib.Telnet("192.168.45.61", port=23, timeout=5)
login = "administrator"
print(tn.read_until(b'login:').decode('ascii'))
tn.write(login.encode('ascii') + b'\r\n')
print(tn.read_until(b'Password:').decode('ascii'))
代码段的输出为:

λ python tmp.py

VxWorks login:
 amnsrtr
Password:
基本上,字符串“administrator”通过发送到telnet服务器并再次读取而更改为“amnsrtr”。登录失败。 这可能是编码问题吗? 如何找出telnet服务器所需的编码? 我尝试使用windosw telnet客户端登录,结果成功了。我检查了windows telnet客户端的终端设置,发现: “当前代码页:850(OEM-多语言拉丁语I)” 所以我尝试了“cp850”和“latin-1”编码,但没有成功。我循环了字符串“administrator”的所有可用文本编码组合(encode->decode),以查看是否有任何内容生成“amnsrtr”而没有结果。我发现的模式是,基本上每2个字符都会丢失:

"administrator"
"a_m_n_s_r_t_r"
但我不知道该怎么办。有人知道这是什么问题吗


我在Windows 10上使用Python 3.6.8的可能性很小,但可能有人期望使用“utf-16-le”,但不是正确解码,而是每隔一个字节就删除一个?因此,请尝试将其编码为“utf-16-le”,看看是否有效。谢谢您的回复。不幸的是,这没有帮助。它只在终端中打印“a”:VxWorks登录:a您是否尝试与任何其他telnet客户端连接?@snakecharmerb仅与问题中所述的Windows telnet客户端连接。由于这样做没有问题,我假设问题在telnetlib/Python脚本中。