首页 > 编程知识 正文

转义字符的整理方式,转义字符的整理与归纳

时间:2023-05-06 02:34:14 阅读:276974 作者:2450

文章目录 转义符号 转义字符清单换行符横向制表符空格编码符

转义符号

反斜杠在程序设计中称为转义符,用来表示那些不能直接显示的字符。例如:换行。
在不同的系统中换行的表示又不相同,在Unix中换行符是n,而在Windows中换行符是rn(先回车再换行),在Mac中换行是r。这里的换行符的意思是,当我们使用文本编辑器书写内容时,当我们完成一行内容(无论主动敲击回车键换行还是文本编辑器自动换行),编辑器会自动在我们每行文本后添加转义字符(n或者rn或者r),也就是在每行末尾做个“标记”,当使用编辑器打开时,方便我们查看(这些“标记”我们看不到)。
另外,在Bash中用于去除某些字符的特殊意义,保留跟随在之后的字符的字面值,参考示例1。
示例1:

ubuntu@ubuntu:~$ echo $HOME/home/ubuntuubuntu@ubuntu:~$ echo $HOME$HOME

说明:反斜线去除了$字符的特殊意义,保留字面值,从而不输出HOME变量的值

扩展知识:
路径和参数的表示符号

Windows:/是表示参数,是表示本地路径Linux和Unix:/表示路径,表示转义,-和--表示参数网络:由于网络使用Unix标准,所以网络路径用/

参考文章:
Linux下反斜杠号""引发的思考

转义字符清单 转义字符含义ASCII 码(16/10 进制)o空字符(NULL)00H/0,H 表示十六进制,其实可以写成 0x00n换行符(LF, Line Feed)0AH/10,十六进制数可以写成 0x0A,下同r回车符(CR, Carriage Return)0DH/13t水平制表符(HT, Horizontal Tab)09H/9v垂直制表符(VT, Vertical Tab)0BH/11a响铃(BEL, Bells)07H/7b退格符(BS, Backspace)08H/8f换页符(FF, Form Feed)0CH/12'单引号27H/39"双引号22H/34\反斜杠5CH/92?问号字符3F/63$美元符号ddd三位八进制所代表的任意字符三位八进制xhh二位十六进制数所代表的任意字符二位十六进制换行符

r是回车,本义是光标重新回到本行开头,名称传承自以前的打字机,表示打印头归位,r的英文return,控制字符可以写成CR,即Carriage Return

n是换行,本义是光标往下一行(不一定到下一行行首),名称传承自以前的打字机,表示走纸另起一行,n的英文newline,控制字符可以写成LF,即Line Feed

Dos和Windows采用回车(CR)+换行(LF)表示下一行,转义符号:rn,具体含义:光标回到本行开头并往下一行,十六进制ASCII码:0x0D0A

Unix类系统中采用换行(LF)表示下一行,转义符号:n,具体含义:光标下一行并回到行首,十六进制ASCII码:0x0A

MAC OS中采用回车(CR)表示下一行,转义符号:r,具体含义:光标回到本行开头并往下一行,十六进制ASCII码:0x0D

用表格整理如下:

–WindowsLinux/UnixMac OS换行符rnnrASCII0x0D0A0x0A0x0D

注意:
vi/vim编辑器中,0x0D0A被表示成^M$($不是换行符的表示,换行符没有表示出来,$是文本结束EOF的表示),关于这个^M$东西并没有同时出现过呀,我有疑问!!!
一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix下打开(例如vi编辑器)的话,在每行的结尾会出现^M字符。

扩展知识:

关于“回车键”的来历
还得从机械英文打字机说起。在机械英文打字机上,有一个部件叫“字车”,每打一个字符(原为单词,但是个人觉得这里应该是字符),“字车”就前进一格。当打满一行字符后,打字者就得推动“字车”到起始位置,这时打字机会有两个动作响应:一是“字车”被归位,二是滚筒上卷一行,以便开始输入下一行,这个推动“字车”的动作叫“回车”。后来,在电动英文打字机上,人们增加了一个直接起“回车”作用的键。这个新增的键就被称为“回车键”。
在电脑键盘上,“回车键”上曾经使用过“CR”、“RETURN”的字样,后来才统一确定为“Enter”。

为什么Windows会使用rn作为换行符?
在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33,Linux/Unix下的tty概念也来自于此)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒(注:估计是从打字机的最右边回到最左边的机械运动 所需要的时间),正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。
于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车(Carriage Return)”,告诉打字机把打印头定位在左边界;另一个叫做“换行(Line Feed)”,告诉打字机把纸向下移一行。这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。

横向制表符

t:横向制表符(HT),表示跳到下一个 TAB 位置,也叫水平制表符

t:是补全当前字符串长度到 8 的整数倍,最少 1 个最多 8 个空格,补多少要看 t 前字符串长度。

比如当前字符串长度 10,那么 t 后长度是16,也就是补 6 个空格;如果当前字符串长度 12,此时 t 后长度是16,补 4 个空格。

空格

半角空格的 Unicode 是:u0020,代码中常用的,是英文符号
全角空格的 Unicode 是:u3000,中文中使用,是中文符号

编码符

u,表示Unicode编码,例如:u4f60u597duff0cu4e16u754c,u后面的是十六进制数,转换成二进制数是2个字节(16bit),表示2个字节表示一个字符,这里有5个字符,如下:

public static void main(String[] args) { System.out.println("u4f60u597duff0cu4e16u754c"); }

得到的实际字符是:
你好,世界

快三最准高手教学词,但是个人觉得这里应该是字符),“字车”就前进一格。当打满一行字符后,打字者就得推动“字车”到起始位置,这时打字机会有两个动作响应:一是“字车”被归位,二是滚筒上卷一行,以便开始输入下一行,这个推动“字车”的动作叫“回车”。后来,在电动英文打字机上,人们增加了一个直接起“回车”作用的键。这个新增的键就被称为“回车键”。
在电脑键盘上,“回车键”上曾经使用过“CR”、“RETURN”的字样,后来才统一确定为“Enter”。

为什么Windows会使用rn作为换行符?
在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33,Linux/Unix下的tty概念也来自于此)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒(注:估计是从打字机的最右边回到最左边的机械运动 所需要的时间),正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。
于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车(Carriage Return)”,告诉打字机把打印头定位在左边界;另一个叫做“换行(Line Feed)”,告诉打字机把纸向下移一行。这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。

横向制表符

t:横向制表符(HT),表示跳到下一个 TAB 位置,也叫水平制表符

t:是补全当前字符串长度到 8 的整数倍,最少 1 个最多 8 个空格,补多少要看 t 前字符串长度。

比如当前字符串长度 10,那么 t 后长度是16,也就是补 6 个空格;如果当前字符串长度 12,此时 t 后长度是16,补 4 个空格。

空格

半角空格的 Unicode 是:u0020,代码中常用的,是英文符号
全角空格的 Unicode 是:u3000,中文中使用,是中文符号

编码符

u,表示Unicode编码,例如:u4f60u597duff0cu4e16u754c,u后面的是十六进制数,转换成二进制数是2个字节(16bit),表示2个字节表示一个字符,这里有5个字符,如下:

public static void main(String[] args) { System.out.println("u4f60u597duff0cu4e16u754c"); }

得到的实际字符是:
你好,世界

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。