近来研究源码时发现,常常在路径中出现正斜杠“/”和反斜杠“”,之前就一直不胜其扰,所幸查资料把它一次弄懂,求个明白。在这里做个记录。
我认真搜了一下,发现问这个问题的人还不少,知乎上也有提问的。来看看知乎的回答。
问题:如何区分符号“/”和“”的用法?
某些回答:
1、Fenng:"记住一件事情,除了在程序中,其它地方几乎不需要用"",应该就差不多了。
BTW,我最反感的一件事情就是应该用"/"的地方用了""。也是用来鉴别一个人是否足够细心的一个依据。"
2、Nevo:""/" 分隔符,"" 转义字符,好吧,我承认我是程序员。"
3、早起鸟:""/" 英文是forward slash, “" 是backward slash
形象些比喻的话,“/"是一个人站立着向前倾倒->, 而""是一个人站立着向后倾倒。"
4、知乎用户:“在绝大多数地方,用的都是/(slash),包括Mac/Linux,也包括URL。你唯一需要记住的是,Microsoft这个怪鸡在自己的操作系统里面偏要用(backslash),使得自己与众不同。
根据上面的说法,你很容易记住谁是“正”斜杠,谁是“反”斜杠,这个世界上就只有Microsoft是反的,别人都是“正”的,因为它用的那个叫做 backslash。”
看到第4条回答,我心里暗暗点头,说得真的太TM对了!
言归正传,说说具体的区别吧!
以下部分内容为参考http://blog.csdn.net/zlwzlwzlw/article/details/7768313/
Unix使用斜杠/作为路径分割符,而Web应用最先是使用在Unix系统上面,所以目前所有的网络地址都采用斜杠/作为分隔符。
Windows由于使用斜杠/作为DOS命令提示符的参数标志了,为了不混淆,所以采用反斜杠作为路径分隔符。所以目前windows系统上的文件浏览器都是用反斜杠作为路径分隔符。随着发展,DOS系统已经被淘汰了,命令提示符也用得很少,斜杠和反斜杠在大多数情况下可以互换,没有影响。
我在cmd.exe验证了一下:
正斜杠:
反斜杠:
正斜杠:
反斜杠:
的确,现在在cmd中,已经不区分正斜杠和反斜杠了!
知道这个背景后,可以总结一下结论:
(1)浏览器地址栏网址使用 正斜杠/;
(2)windows文件浏览器上使用 反斜杠;
(3)出现在htm url()属性中的路径,指定的路径是网络路径,所以必须使用 正斜杠/;
1 <div style="background-image:url(/Image/Control/title.jpg); background-repeat:repeat-x; padding:10px 10px 10px 10px"></div> 2 // 如果url后面用反斜杠,就不会显示任何背景
(4)出现在普通字符串的路径,如果代表的是windows文件路径,则使用 正斜杠/和 反斜杠是一样的;如果代表的是网络文件路径,则必须使用 正斜杠/;
1 <img src=".Image/Control/ding.jpg" /> // 本地文件路径,/ 和 是等效的 2 <img src="./ImageControlcai.jpg" /> 3 <img src="http://hiphotos.baidu.com/yuhua522/pic/item/01a949c67e1023549c163df2.jpg" /> // 网络文件路径,一定要使用 斜杆/
另外在编程中,常用反斜杠加字符表示转义字符,如 表示“空字符” 表示“回车”, 表示“换行”等。
而"\"则表示反斜杠的转义字符,在编程中常用于表示反斜杠不是普通的字符,而是路径的分隔符。如用一个字符串存储保存文件的路径时,路径为F:caffeTempimage.jpg;则用字符串存储时,应该写为str=F:\caffe\Temp\image.jpg;
因为若不这样表示,则反斜杠将会当作普通字符,而非路径的分隔符。
以上。