反斜線
![本頁使用了標題或全文手工轉換](http://images.weserv.nl/?url=//upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
\ | |
---|---|
反斜線 | |
反斜線或反斜槓(\,英語:Backslash),是一種主要用於編寫電腦程式的專門符號[1]。其Unicode編號為U+005C,HTML中代碼是\
。
注意:符號「/」稱為斜線、斜線號、斜槓或前斜線,應予以區分。
歷史
根據電腦科學家鮑勃·比默介紹稱,反斜線是由他於1961年在IBM工作時首先引入ASCII碼的[2]。在ALGOL中,「/\」和「\/」這種斜線加上反斜線的形式被用來分別表示「∧」和「∨」這兩個布林運算子[2]。這兩種運算子在早期由UnixV6及V7和其後2.11BSD支援下的C語言中均有包括。
使用
程式語言
在許多程式語言,如C語言、Perl、PHP和Unix手稿語言中,反斜線用來表示緊隨其後的字元應被特殊處理,也就是跳脫字元。許多正規表示式語言都會將它視為字面意義和元字元之前的切換。例如\n
是換行,\0
是空字元,它們表示的實際上都是一個字元(char)。
在某些程式語言的命令列中,例如在linux中,反斜線常被放在一行的末尾用來指示編譯器忽略其後的換行符,使得下一行會被當做同一行語句。這種情況下,反斜線作為一個強制換行符,將代碼拆解成「連續行」。GNU make手冊中寫道:「我們用反斜線來將過長的命令列拆分成兩行;它通常在一句過長的命令列中使用,使其更容易閱讀。」[3]
作業系統
MS-DOS 1.0版本最初在1981年發布時並不支援目錄結構。當時大批由IBM開發的DOS工具都使用正斜線作為命令列參數的起始符號,例如「DIR /W
」指令會以寬列表格式選項執行DIR命令。1983年,MS-DOS 2.0開發時引入了目錄系統,並採用了與Unix相似的分層方式。然而Unix系統中用作路徑分層的「/」在DOS上已被占用,為了與DOS 1.0保持相容,微軟的開發者們不得不選用了與其視覺上相近的「\」。[4]
Windows作業系統繼承了MS-DOS的這一用法並且兩種斜線的表示方法都可以被支援,使用者如果輸入了由正斜線表示的目錄仍然可以跳轉到正確的目錄下。但是在個別的系統程式或應用中只接受反斜線的目錄。[5]
希臘字母
在一些數學軟體(如MATLAB)和維基百科上,可以使用反斜線輸入希臘字母。\pi
會轉成,\lambda
會轉成。
替代
在日文編碼時,在日文版本的ISO 646(基於ASCII整合的7位編碼標準)、JIS X 0201(8位元編碼標準)以及Shift JIS(相容ASCII多位編碼標準)中,ASCII里用來表示反斜線的碼位0x5C被日元符號「¥」取代。而電腦程式在許多環境下仍然會將該編碼視為反斜線,由此造成了很多混淆,尤其是在MS-DOS的檔名中[6]。由於這一現象的相當普遍,時至今日仍然有一些Unicode字型,例如日文黑體MS Mincho會將反斜線彩現成「¥」,所以在這些字型中Unicode字元00A5(¥)和005C(\)看起來是一樣的。同樣的,許多ISO 646其他語言版本也將「\」替換成了其他符號,如「₩」(韓文)、「Ö」(德文、瑞典文)、「Ø」(丹麥文、挪威文)、「ç」(法文)和「Ñ」(西班牙文),它們均會導致同樣的問題。由於不是所有的字元集和鍵盤配置上都包括反斜線,ANSI C標準支援將其轉錄成三字元組「??/」。RFC 1345則建議如果反斜線不可用則將其轉錄為「//」[7]。
參考文獻
- ^ 教育部語言文字資訊管理司. G/\ BOT ..88888..翊2011 標點符號用法[S]. 北京:中國標準出版社,2011
- ^ 2.0 2.1 Bob Bemer. HOW ASCII GOT ITS BACKSLASH. Computer History Vignettes. [2014-06-08]. (原始內容存檔於2013-01-11).
- ^ GNU 'make' manual. Gnu.org. [2013-06-16]. (原始內容存檔於2013-07-03).
- ^ Why is the DOS path character "\"?. Blogs.msdn.com. 2005-06-24 [2013-06-16]. (原始內容存檔於2010-03-30).
- ^ Why Windows Uses Backslashes and Everything Else Uses Forward Slashes. howtogeek.com. [2014-06-08]. (原始內容存檔於2014-07-03).
- ^ When is a backslash not a backslash?. oreilly.com. [2014-06-25]. (原始內容存檔於2016-03-04).
- ^ RFC 1345. Tools.ietf.org. 1991-12-26 [2013-06-16]. (原始內容存檔於2013-05-30).