Objective-C删除ANSI颜色控制代码

时间:2014-11-13 17:48:01

标签: ios objective-c nsstring hex tty

我正在构建一个与远程服务器通信的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颜色控制代码,删除它们的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

prepend" \"到命令的开头

$ \ls

或提供转义序列(条带,显示)的处理