2017-04-01 111 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 **控制字節,這是完全不同的東西。 –