奇怪的转义序列

Pav*_*vel 2 tty escape-characters console

我需要确定这个转义序列代表什么。我看到这个序列在我服务器的控制台上自动生成,但我不确定这是什么原因。

转义序列:^[[[D

我已经检查了这张转义序列图表作为参考:http : //ascii-table.com/ansi-escape-sequences-vt-100.php,但没有找到任何匹配的内容。

slm*_*slm 7

注意:这是我的理解,所以可能有点不对!

这些字符^[通常表示 Escape 键本身。那是一个 Control ( ^) + 一个左方括号 ( [)。

转义字符摘录- ASCII 转义字符

ASCII“转义”字符(八进制:\033,十六进制:\x1B,或 ^[,或十进制,27)在许多输出设备中用于开始一系列称为控制序列或转义序列的字符。通常,转义字符首先按这样的顺序发送,以提醒设备以下字符将被解释为控制序列而不是普通字符,然后一个或多个字符将跟随以指定一些详细的操作,之后设备将恢复正常解释字符。例如,^[ 序列后跟可打印字符 [2;10H,将导致 DEC VT102 终端将其光标移动到屏幕第二行的第 10 个单元格。这后来被开发为 ANSI X3.64 标准所涵盖的 ANSI 转义码。

在您使用 UTF-8 的系统上,这个转义序列实际上是 2 个字符,所以现在^[后面跟了一个额外的[.

ANSI 转义码摘录- 序列元素

还有一个单字符的 CSI (155/0x9B/0233)。ESC+[ 两字符序列比单字符替代更常用,有关详细信息,请参阅 C0 和 C1 控制代码。仅支持 ASCII(7 位字节)的设备或支持 8 位字节但将 0x80–0x9F 控制字符范围用于其他目的的设备只能识别两个字符序列。在使用 UTF-8 编码的终端上,两种形式都占用 2 个字节(UTF-8 中的 CSI 为 0xC2, 0x9B)[讨论] 但 ESC+[ 序列更清晰。

知道以上 2 条信息,这将使您的转义序列Esc+ [+D成为令人惊讶的退格字符。

ANSI 转义序列摘录

Esc[ValueD     Cursor Backward: Moves the cursor back by the specified 
               number of columns without changing lines. If the cursor is 
               already in the leftmost column, ANSI.SYS ignores this 
               sequence.
Run Code Online (Sandbox Code Playgroud)

参考