文章目錄
-
- 轉義字元
-
- html常用轉義字元
- 轉義符号 \
- 特殊符号
-
- 換行符
- 空格符
- 編碼符
轉義字元
html常用轉義字元
字元 | 轉義符 |
---|---|
" | |
& | |
< | |
> | |
空格 |
參考文章:
Html轉義字元
轉義符号 \
反斜杠
\
在程式設計中稱為轉義符,用來表示那些不能直接顯示的字元。例如:換行。
在不同的系統中換行的表示又不相同,在Unix中換行符是
\n
,而在Windows中換行符是
\r\n
(先回車再換行),在Mac中換行是
\r
。這裡的換行符的意思是,當我們使用文本編輯器書寫内容時,當我們完成一行内容(無論主動敲擊Enter鍵換行還是文本編輯器自動換行),編輯器會自動在我們每行文本後添加轉義字元(
\n
或者
\r\n
或者
\r
),也就是在每行末尾做個“标記”,當使用編輯器打開時,友善我們檢視(這些“标記”我們看不到)。
另外,在Bash中用于去除某些字元的特殊意義,保留跟随在
\
之後的字元的字面值,參考示例1。
示例1:
[email protected]:~$ echo $HOME
/home/ubuntu
[email protected]:~$ echo \$HOME
$HOME
說明:反斜線去除了
$
字元的特殊意義,保留字面值,進而不輸出
HOME
變量的值
擴充知識:
路徑和參數的表示符号
- Windows:
是表示參數,/
是表示本地路徑\
- Linux和Unix:
表示路徑,/
表示轉義,\
和-
表示參數--
- 網絡:由于網絡使用Unix标準,是以網絡路徑用
/
參考文章:
Linux下反斜杠号""引發的思考
特殊符号
換行符
\r
是回車,本義是光标重新回到本行開頭,名稱傳承自以前的打字機,表示列印頭歸位,
r
的英文
return
,控制字元可以寫成
CR
,即
Carriage Return
\n
是換行,本義是光标往下一行(不一定到下一行行首),名稱傳承自以前的打字機,表示走紙另起一行,
n
的英文
newline
,控制字元可以寫成
LF
,即
Line Feed
- Dos和Windows采用回車(CR)+換行(LF)表示下一行,轉義符号:
,具體含義:光标回到本行開頭并往下一行,十六進制ASCII碼:\r\n
0x0D0A
- Unix類系統中采用換行(LF)表示下一行,轉義符号:
,具體含義:光标下一行并回到行首,十六進制ASCII碼:\n
0x0A
- MAC OS中采用回車(CR)表示下一行,轉義符号:
,具體含義:光标回到本行開頭并往下一行,十六進制ASCII碼:\r
0x0D
用表格整理如下:
– | Windows | Linux/Unix | Mac OS |
---|---|---|---|
換行符 | | | |
ASCII | | | |
注意:
vi/vim編輯器中,
0x0D0A
被表示成
^M$
(
$
不是換行符的表示,換行符沒有表示出來,
$
是文本結束
EOF
的表示),關于這個
^M$
東西并沒有同時出現過呀,我有疑問!!!
一個直接後果是,Unix/Mac系統下的檔案在Windows裡打開的話,所有文字會變成一行;而Windows裡的檔案在Unix下打開(例如vi編輯器)的話,在每行的結尾會出現
^M
字元。
擴充知識:
-
關于“Enter鍵”的來曆
還得從機械英文打字機說起。在機械英文打字機上,有一個部件叫“字車”,每打一個字元(原為單詞,但是個人覺得這裡應該是字元),“字車”就前進一格。當打滿一行字元後,打字者就得推動“字車”到起始位置,這時打字機會有兩個動作響應:一是“字車”被歸位,二是滾筒上卷一行,以便開始輸入下一行,這個推動“字車”的動作叫“回車”。後來,在電動英文打字機上,人們增加了一個直接起“回車”作用的鍵。這個新增的鍵就被稱為“Enter鍵”。
在電腦鍵盤上,“Enter鍵”上曾經使用過“CR”、“RETURN”的字樣,後來才統一确定為“Enter”。
- 為什麼Windows會使用
\r\n
作為換行符?
在計算機還沒有出現之前,有一種叫做電傳打字機(Teletype Model 33,Linux/Unix下的tty概念也來自于此)的玩意,每秒鐘可以打10個字元。但是它有一個問題,就是打完一行換行的時候,要用去0.2秒(注:估計是從打字機的最右邊回到最左邊的機械運動 所需要的時間),正好可以打兩個字元。要是在這0.2秒裡面,又有新的字元傳過來,那麼這個字元将丢失。
于是,研制人員想了個辦法解決這個問題,就是在每行後面加兩個表示結束的字元。一個叫做“回車(Carriage Return)”,告訴打字機把列印頭定位在左邊界;另一個叫做“換行(Line Feed)”,告訴打字機把紙向下移一行。這就是“換行”和“回車”的來曆,從它們的英語名字上也可以看出一二。
空格符
\t
表示空格,
半角空格的Unicode是:\u0020,代碼中常用的,是英文符号
全角空格的Unicode是:\u3000,中文中使用,是中文符号
編碼符
\u
,表示Unicode編碼,例如:
\u4f60\u597d\uff0c\u4e16\u754c
,
\u
後面的是十六進制數,轉換成二進制數是2個位元組(16bit),表示2個位元組表示一個字元,這裡有5個字元,如下:
public static void main(String[] args) {
System.out.println("\u4f60\u597d\uff0c\u4e16\u754c");
}
得到的實際字元是:
你好,世界