[oeasy]python0066_控制序列_光标位置设置_ESC_逃逸字符_CSI

流浪地球
• 阅读 371

光标位置

回忆上次内容

  • 上次讲了 三引号的输出
  • 三引号中

    • 回车和引号 都会 被原样输出
    • \ 还是需要从 \\转义
  • 黑暗森林 快被摸排清了

    • 还有哪个 转义序列

      • 没 研究过吗?🤔

[oeasy]python0066_控制序列_光标位置设置_ESC_逃逸字符_CSI

  • \e是 干什么的?🤔

回忆转义

  • 转义转义

    • 转化含义

[oeasy]python0066_控制序列_光标位置设置_ESC_逃逸字符_CSI

  • \反斜杠(backslash)加了之后
  • 字符就不是原来的意思了

    • 转义么
  • 转义转义

    • 转化含义
  • 所以\反斜杠这个字符

    • 也叫做转义字符Escape character
    • \b 这两个字符的序列算是一个转义序列 Escape sequence
    • \ 这个转义字符会让 \b转义序列

      • 转义为 Backspace 这个含义
      • Backspace退格就是这个序列转化含义之后的含义
    • 这个转化后的含义也对应一个ascii字符

      • 就是 \b
      • 键盘上的退格对应的数值就是8

转义 Escape

  • \e是什么意思呢?

[oeasy]python0066_控制序列_光标位置设置_ESC_逃逸字符_CSI

  • 转义之后的的含义竟然是 escape

搜索结果

  • 来捋一捋🤔

[oeasy]python0066_控制序列_光标位置设置_ESC_逃逸字符_CSI

  • \是转义字符

    • 要和后面的字符一起构成转义序列
  • \e是转义序列

    • 转义的含义是 escape
  • 所谓转义转义

    • 转化含义
    • 转义序列\e对应的字符含义是Escape
    • 再次逃逸出去
    • 能逃去到哪里呢?

逃逸

  • 从标准输出序列中逃逸出来

[oeasy]python0066_控制序列_光标位置设置_ESC_逃逸字符_CSI

  • 可以让输出

    • 从当前的字符串序列中

      • 逃逸(Escape)出去
    • 后面的内容

      • 可就不是 输出的文本 了
  • 而是 控制序列(Control Sequence)

    • [10;20H 控制 输出位置

      • 第10行第20列进行输出
  • 这种控制方法

    • 在今天被称为

      • ANSI escape code 标准
  • 我们来试试

动手实验

[oeasy]python0066_控制序列_光标位置设置_ESC_逃逸字符_CSI

  • 真的可以定位输出
  • 从正常的输出流逃逸到了控制序列!!!

[oeasy]python0066_控制序列_光标位置设置_ESC_逃逸字符_CSI

  • 那为什么有控制序列呢?

缘起

  • 电传打字机 输出的颜色

    • 只能通过 控制色带(类似于墨盒)

      • 来控制 打印颜色的深浅

        • 是物理过程

[oeasy]python0066_控制序列_光标位置设置_ESC_逃逸字符_CSI

  • 早期的终端

    • 通过调节 显示器亮度 来改变显示效果
    • 各个终端的 制造商

      • 都有 自己独特的 控制字符
    • 这些特殊字符 是和 机器相关 的
    • 彼此 并不兼容
  • 但只要 接受到 这些控制字符

    • 终端 就可以 调整输出方式
  • 比如

    • 在 某个横纵坐标位置[x,y]

      • 输出字符
  • 这就是 数字过程了

统一标准

  • 但是不同终端

    • 控制方式不同
    • 可能 造成显示状态 异常
    • 远程终端输出结果不可控
    • 需要一个关于控制字符的统一标准
  • 1964 年 ISO 646

    • 在欧洲以ECMA-6的形式存在
    • 后来被ANSI(American National Standards Institute)

      • 整合为工业标准
      • 叫做 ANSI X3.64

[oeasy]python0066_控制序列_光标位置设置_ESC_逃逸字符_CSI

  • 是不是很像ascii

    • 而且包括了 整个黑暗森林
  • 本来 在各种电传打字机 中实现支持

    • 现在在 terminal软件 中实现支持

esc 键

  • Teletype Model ASR-33 终端键盘

    • 数据通信行业 最受欢迎的终端之一
  • 1963 年推出

    • 注意 shift 和 ctrl 都已经出现
    • Alt Mode 出现在第 1 列

[oeasy]python0066_控制序列_光标位置设置_ESC_逃逸字符_CSI

  • \e这个转义序列 有了对应的按键吗?

    • ALT MODE

      • 是用来 切换模式的 特殊按键
      • 这是当时的 esc 键 吗?

总结

  • 这次了解了 新的转义模式

    • \33 逃逸控制字符 esc

      • 这个字符让输出退出标准输出流
      • 进行控制信息的设置

        • 可以设置光标输出的位置

[oeasy]python0066_控制序列_光标位置设置_ESC_逃逸字符_CSI

  • ASR33中的ALT MODE

    • 是 今天的ESC吗????🤔

[oeasy]python0066_控制序列_光标位置设置_ESC_逃逸字符_CSI

点赞
收藏
评论区
推荐文章
Easter79 Easter79
3年前
sql注入
反引号是个比较特别的字符,下面记录下怎么利用0x00SQL注入反引号可利用在分隔符及注释作用,不过使用范围只于表名、数据库名、字段名、起别名这些场景,下面具体说下1)表名payload:select\from\users\whereuser\_id1limit0,1;!(https://o
Stella981 Stella981
3年前
Json特殊字符处理
JSon数据中的String传递数据时,需要处理好特殊字符.JSon数据中有特殊字符:1:引号,如果是使用单引号,来括值的话,那String中 ' 单引号为特殊字符2:正斜杠,反斜杠,换行符号等。另外,必须用(")而非(')表示字符串:/JSON字符串特殊字符处理,比如
Wesley13 Wesley13
3年前
JAVA数据类型中的char类型
1、JAVA中,char占2字节,16位。可在存放汉字2、char赋值chara'a';//任意单个字符,加单引号。chara'中';//任意单个中文字,加单引号。chara111;//整数。0~65535。十进制、八进制、十六进制均可。输出字符编码表中对应的字符。注:只能放单个字符。3、char运算char类
Stella981 Stella981
3年前
Linux云计算学习笔记day15
引号系列单引号    所见即所得                       echo'$LANG{1..5}'双引号 与单引号类似双引号里面的特殊符号会被解析(运行)                   
Stella981 Stella981
3年前
Python 常用单词
Python常用单词(英文好的人自动忽略)单词发音翻译作用print普润特打印显示我们想要查看的内容input因普特输入获取用户输入的一些内容int印特整型将有引号的数字加工成没有引号的strstr字符串将内容加工成带引号的数据bo
Easter79 Easter79
3年前
SpringMvc接受特殊符号参数被转义
WEB开发时,在前端通过get/post方法传递参数的时候 如果实参附带特殊符号,后端接收到的值中特殊符号就会被转义例如该请求: http://localhost:10001/demo/index.do?name张三(1)注:中文()不会出现此种情况后台就收到的实际name值为:  张三&40;1&41;&40;其实为h
Stella981 Stella981
3年前
Python基础(四)
1.字符串(1)定义可以使用单引号,双引号,三引号定义字符串.x'123'x"123"x'''123'''x'''123456'''三引号可以跨行使用.(2)特性python中的字符串是不可变
Stella981 Stella981
3年前
20190515—python基础:作业练习
1、print()函数、转义字符、变量和赋值1)print()函数请打印字符串'今天是星期天'打印整数'1235'字符串单引号、双引号、三引号的作用各是什么?运用print()函数计算”7856“2)转义字符下面是无脸男对千寻说的话:千寻你好,人们叫
Wesley13 Wesley13
3年前
10条PHP编程习惯助你找工作
http://blog.csdn.net/yihan1029/article/details/417664131、使用单引号括起来的字符串当使用双引号来括字符串时,PHP(https://www.oschina.net/p/php)解释器会对其进行变量替换、转义等操作,如“\\n”。如果只想输出一个基本的字符串,用单引号会节
可莉 可莉
3年前
20190515—python基础:作业练习
1、print()函数、转义字符、变量和赋值1)print()函数请打印字符串'今天是星期天'打印整数'1235'字符串单引号、双引号、三引号的作用各是什么?运用print()函数计算”7856“2)转义字符下面是无脸男对千寻说的话:千寻你好,人们叫
小万哥 小万哥
1年前
Kotlin 字符串教程:深入理解与使用技巧
Kotlin中的字符串用于存储文本,定义时使用双引号包围字符序列,如vargreeting"Hello"。Kotlin能自动推断变量类型,但在未初始化时需显式指定类型,如varname:String。可通过索引访问字符串元素,如txt0获取首字符。字符串作为对象,拥有属性和方法,如length获取长度,toUpperCase()转大写。可使用compareTo()比较字符串,indexOf()查找子串位置。字符串中嵌入单引号表示文本内的引号,如"It&39;salright"。使用或plus()
流浪地球
流浪地球
Lv1
总有人笨拙得想把所有温柔给你。
文章
4
粉丝
0
获赞
0