甚至不知道如何解释这个,但我连接到远程计算机并执行一个命令,将各种东西输出到stdout大约10分钟。 (我基本上是在一个工具上运行一些实验)。在执行过程中的一段时间后,输出奇怪的英文字符会变成下面的字符,即使执行完毕也会保持这样。下面是我在命令行中键入echo“what the hell”,然后输出结果。除非我使用ssh,否则不会发生这种情况。到底是怎么回事?
°┤⎽␋⎺┼02% ␊␌⎺ "┬▒├ ├␊ ␊┌┌"
┬▒├ ├␊ ␊┌┌
°┤⎽␋⎺┼02%
答案 0 :(得分:3)
通常,将可能包含二进制数据的任意文本输出到终端是不安全的。它可能包括终端逃脱等。
您可以将其添加到管道中以删除除可打印的ascii字符之外的所有内容:
somecommand | tr -cd '\11\12\15\40-\176'
答案 1 :(得分:2)
您的终端不仅显示文本,还会响应影响终端设置的各种转义序列,这可能会更改字体,字符集,大小等内容。
当您输出二进制数据时,无论是故意还是由于某些错误(例如打印出未初始化的数组),一些二进制数据恰好是终端解释的特殊代码。
答案 2 :(得分:2)
另一个尝试的技巧是echo
Ctrl-V Ctrl-O 。对于VT100样式的终端,^ O字符移出备用字符集。
如果这不起作用(并且所有其他答案都不起作用),请关闭终端并重新连接。