据我了解,转义字符可以通过以下方式表示。
在不同数量的系统中,前4个表示形式仅是十进制27。但是最后一个表示形式^[
似乎没有与十进制27的任何链接,这似乎是任意的。所以我想知道为什么选择^[
作为表示终端中逃生的方式,这是怎么发生的呢?
答案 0 :(得分:1)
但是最后一个表示形式
^[
似乎没有与小数点27的任何链接
乍一看似乎如此,但实际上有一个链接。
首先,您需要了解,^[
之类的脱字号表示在按下 [时按住了控制键,因此^[
是 ctrl < / kbd>- [。换句话说,转义键的行为与 ctrl - [”完全相同(在终端中)。 (关于转义键为何会产生此特殊字符的原因:请参见答案的第二部分。)
字符[
以ASCII编码为十进制91或0x5b,但查看二进制表示形式最有用:0b01011011。 ^[
或转义键编码为十进制27或0b00011011。如果我们对齐这两个二进制数:
[ 0b01011011
^[ 0b00011011
我们可以看到^[
只是一个[
,位7已清除。实际上,添加控制键实际上只是清除了字符代码 1 的前三位。
所以^[
和27之间的联系是91 − 64 = 27:)
为什么选择
^[
作为表示终端中逃生的方式
我绝对不知道!