2017-01-29 8 views
0

Я создаю приложение, которое использует pty.js, чтобы открыть псевдотерминал на моем компьютере. Я получаю ответы, которые выглядят как:Как декодировать ответы xterm?

]0;[email protected]:~[?1034h[[email protected] ~]$ ls 
]0;[email protected]:~[[email protected] ~]$ pwd 
/home/ec2-user 

Я предполагаю, что pty.js посылает обратно определенную кодировку, но я не уверен, что кодирование и как его расшифровать. Любая помощь будет оценена, спасибо.

ответ

2

Те не ответы (терминал будет реагировать ), но контрольные последовательности, посылаемые приложением (а не терминал). Я вижу несколько экземпляров (OSC может печатать, как ^[] и CSI, как ^[[ если символ спасения были показаны как ^[):

]0;[email protected]:~ 

выглядит как элемент управления для установки заголовка окна (от XTerm хотя несколько программ поддерживает),

OSC Ps ; Pt BEL 
OSC Ps ; Pt ST 
... 
      Ps = 0 -> Change Icon Name and Window Title to Pt. 

и

[?1034h 

ло OKs как другая последовательность из репертуара XTerm (в общем случае не поддерживается другими программами):

CSI ? Pm h 
      DEC Private Mode Set (DECSET). 
... 
      Ps = 1 0 3 4 -> Interpret "meta" key, sets eighth bit. 
      (enables the eightBitInput resource). 

Для приведенного примера, кодирования не является фактор.

Для захвата вывода из приложения полезно использовать программу script. Я использую небольшую утилиту (unmap), чтобы перевести полученные файлы typescript в читаемую форму, но часто подходит для этой цели.

Дополнительная информация: XTerm Control Sequences