我正在构建一个与远程服务器通信的iOS应用程序。在这种情况下,我使用SSH执行命令,但是,从服务器返回的响应将以看似十六进制的形式出现。我处理来自远程服务器的响应的委托函数将响应参数作为NSString,但是,这是返回的字符串的内容(执行的命令是" ls /")
ls /\r\n\x1b[0m\x1b[01;34mbin\x1b[0m \x1b[01;34mdev\x1b[0m \x1b[01;36minitrd.img\x1b[0m \x1b[01;34mlib64\x1b[0m \x1b[01;34mmnt\x1b[0m \x1b[01;34mroot\x1b[0m \x1b[01;34msrv\x1b[0m \x1b[01;34musr\x1b[0m\r\n\x1b[01;34mboot\x1b[0m \x1b[01;34metc\x1b[0m \x1b[01;36minitrd.img.old\x1b[0m \x1b[01;34mlost+found\x1b[0m \x1b[01;34mopt\x1b[0m \x1b[01;34mrun\x1b[0m \x1b[01;34msys\x1b[0m \x1b[01;34mvar\x1b[0m\r\n\x1b[01;34mcdrom\x1b[0m \x1b[01;34mhome\x1b[0m \x1b[01;34mlib\x1b[0m \x1b[01;34mmedia\x1b[0m \x1b[01;34mproc\x1b[0m \x1b[01;34msbin\x1b[0m \x1b[30;42mtmp\x1b[0m \x1b[01;36mvmlinuz\x1b[0m'
如果这实际上是十六进制的,那么如何将其转换回可读字符串以用于显示目的?如果它不是十六进制的,有人知道它是什么吗?
编辑:
由于这是ANSI颜色控制代码,删除它们的最佳方法是什么?
答案 0 :(得分:1)
prepend" \"到命令的开头
$ \ls
或提供转义序列(条带,显示)的处理