正斜杠和反斜杠,换行与回车

时间:2022-03-08 14:47:01

先看正斜杠和反斜杠:

正斜杠是/

反斜杠是\

在java中\是转义字符就是说java解析字符串时会将\和他后面一个字符一起当作一个字符来解析,如\n解析成回车符(LF,对应ASCII0x0A),\r解析成换行符(CR,对应ASCII0x0D),\t是水平制表符HT (horizontal tab),ASCII0x09),\\就是\这个字符(ASCII0x5C)。

关于/和\的另一个点在于:windows用\作为路径的分割符,Linux用/作为路径的分割符,url地址也采用Linux风格,将/作为路径分割符。但是windows也是可以识别/作为分割符的路径并访问到相应文件的,所以以后编程中访问文件统一用/作为路径分割符,可以防止在windows下可以运行的程序到Linux下跑不了。

另外还有在html中注意点(摘自:路径中 斜杠/和反斜杠\ 的区别):

1.出现在html url() 属性中的路径,指定的路径是网络路径,所以必须用 斜杆/ ;

<div style="background-image:url(/Image/Control/title.jpg); background-repeat:repeat-x; padding:10px 10px 10px 10px"></div>
// 如果url后面用反斜杠,就不会显示任何背景

2.出现在普通字符串中的路径,如果代表的是windows文件路径,则使用 斜杆/ 和 反斜杠\ 是一样的;如果代表的是网络文件路径,则必须使用 斜杆/ ;

<img src=".\Image/Control/ding.jpg" /> // 本地文件路径,/ 和 \ 是等效的
<img src="./Image\Control\cai.jpg" />
<img src="http://hiphotos.baidu.com/yuhua522/pic/item/01a949c67e1023549c163df2.jpg" /> // 网络文件路径,一定要使用 斜杆/


换行回车:

对于不同操作系统的换行符,有一种常见说法:

文件中的换行符号:
linux,unix:     \r\n 
windows    :     \n   
Mac OS   :   \r

看到这里可能会有疑问:之前不是都说了换行符是\n,现在怎么变成linux里是\r\n,windows里是\n,Mac下是\r了。是的,其实这种说法不太准确,或者说会误导别人尤其是刚接触这两个概念的人。更准确的说法是用行尾符号代替换行符号:

三种行尾格式如下:
unix ,linux: \n
dos ,windows: \r\n
mac : \r

关于换行回车的历史:

很久以前,老式的电传打字机使用两个字符来另起新行。一个字符把滑动架移回首位 (称为回车,ASCII码为0D),另一个字符把纸上移一行 (称为换行,ASCII码为0A)。当计算机问世以后,存储器曾经非常昂贵。有些人就认定没必要用两个字符来表示行尾。UNIX 开发者决定他们可以用一个字符来表示行尾,Linux沿袭Unix,也是。Apple 开发者规定了用.开发 MS-DOS以及Windows 的那些家伙则决定沿用老式的.(摘自Windows & Linux 文件格式之迷 < VI下删除文本中的^M>

我看到这里其实还有疑惑,为什么换行符号是根据OS而不同,而不是根据文本编辑器而不同呢,因为写文本是在文本编辑器中进行的我们按下enter键的时候添加\r还是\n抑或是\r\n应该不是由OS决定的,而是由文本编辑器决定的,这个问题仔细想一下可能是因为文本编辑器没有那么底层,它可能不会去控制我按什么键然后他帮你决定写入什么,可能他就是直接调用OS的api的,而windows相对应的api可能就是按enter的时候返回\r\n,linux的api返回\n,mac的底层api返回\r.(这段是我瞎猜的)

关于文件格式的更多问题请见:Windows & Linux 文件格式之迷 < VI下删除文本中的^M>