d41d8c的回答
这还真有个标准,叫做ECMA-48。
其他回答已经提到了,^[
表示ASCII的转义字符(ESC),加上[
表示控制序列的开始(CSI)。
然后关于方向键的规定是这样的(04/03表示4×16+3,也就是67在ASCII所对应的字符,图上其他数字也以此类推):
终端其实有很多种模式。在默认模式下,终端会把方向键转换成光标的移动,而不会发给当前正在运行的程序,但程序也可以通过某些设置,使得终端把所有按键都发给程序(比如vim就在一定程度上依赖这样的设置),这时像方向键这样的特殊按键就会以控制序列的形式发送。
而如果程序没能正确处理这些控制序列,而是把它们当作普通字符输出,就会在屏幕上显示乱码
相关内容