我正在构建一个使用pty.js在我的计算机上打开伪终端的应用程序。我收到的回复如下:
]0;ec2-user@ip-172-31-62-237:~[?1034h[ec2-user@ip-172-31-62-237 ~]$ ls
]0;ec2-user@ip-172-31-62-237:~[ec2-user@ip-172-31-62-237 ~]$ pwd
/home/ec2-user
我假设pty.js正在发送特定的编码,但我不确定编码是什么以及如何解码。任何帮助将不胜感激,谢谢。
答案 0 :(得分:2)
那些不是响应(终端会响应),而是由应用程序(而不是终端)发送的控制序列。我看到一些实例(如果转义字符显示为 ^[]
),OSC可能打印为^[[
,CSI打印为^[
:
]0;ec2-user@ip-172-31-62-237:~
看起来像是设置窗口标题的控件(来自xterm,虽然有几个程序支持它),
OSC Ps ; Pt BEL
OSC Ps ; Pt ST
...
Ps = 0 -> Change Icon Name and Window Title to Pt.
和
[?1034h
看起来像xterm的保留曲目中的另一个序列(通常不受其他程序支持):
CSI ? Pm h
DEC Private Mode Set (DECSET).
...
Ps = 1 0 3 4 -> Interpret "meta" key, sets eighth bit.
(enables the eightBitInput resource).
对于给定的示例, encoding 不是一个因素。
为了捕获应用程序的输出,script
程序非常有用。我使用一个小实用程序(unmap)将生成的typescript
文件转换为可读形式,但cat -v
通常足以用于此目的。
进一步阅读:XTerm Control Sequences