2017-04-01 100 views
0

我使用telnetlib连接到远程telnet服务器并解析它的响应,但是,所有telnetlib的read_*方法返回其原始响应 - 包括原始telnet命令字节(以0xFF开头) - 哪对我的目的来说是不理想的。调用read_all
Telnetlib读服务器响应没有telnet命令

例如: - b'Hello'
输出由telnetlib返回 -
所需的输出b'\xff\xfd\x18\xff\xfdHello'

有没有一种方法,使telnetlib排除其输出这些特殊的telnet控制字节?

回答

1

据我可以告诉你的问题,你需要将字符串转换为UTF-8。这可能是你的解决方案。 https://www.tutorialspoint.com/python/string_decode.htm

+0

不,这些是telnet控制字符,它们不是服务器的shell响应的一部分,并且尝试解码此类字节序列可能会导致无效的unicode字符串或它将包含不需要的数据。 –

+0

在这种情况下,有一个问题已经解答了关于删除控制字符的问题。 http://stackoverflow.com/questions/14693701/how-can-i-remove-the-ansi-escape-sequences-from-a-string-in-python –

+0

那些不是ANSI转义序列,这是** telnet **控制字节,这是完全不同的东西。 –