1. 程式人生 > >回車換行的不同以及 轉義字元和ASCII碼值—(附ASCII碼錶)

回車換行的不同以及 轉義字元和ASCII碼值—(附ASCII碼錶)

問題來源:

“回車”(carriage return)VS  “換行”(line feed)
在計算機還沒有出現之前,有一種叫做電傳打字機(Teletype Model 33)的玩意,每秒鐘可以打10個字元。但是它有一個問題,就是打完一行換行的時候,要用去0.2秒,正好可以打兩個字元。要是在這0.2秒裡面,又有新的字元傳過來,那麼這個字元將丟失。
於是,研製人員想了個辦法解決這個問題,就是在每行後面加兩個表示結束的字元。一個叫做“回車”,告訴打字機把列印頭定位在左邊界;另一個叫做“換行”,告訴打字機把紙向下移一行。
這就是“換行”和“回車”的來歷,從它們的英語名字上也可以看出一二。
後來,計算機發明瞭,這兩個概念也就被般到了計算機上。那時,儲存器很貴,一些科學家認為在每行結尾加兩個字元太浪費了,加一個就可以。於是,就出現了分歧。
Unix系統裡,每行結尾只有“<換行>”,即“\n”;Windows系統裡面,每行結尾是“<換行><回車>”,即“\n\r”;Mac系統裡,每行結尾是“<回車>”。一個直接後果是,Unix/Mac系統下的檔案在Windows裡開啟的話,所有文字會變成一行;而Windows裡的檔案在Unix/Mac下開啟的話,在每行的結尾可能會多出一個^M符號。

Dos和windows採用回車+換行CR/LF表示下一行,

而UNIX/Linux採用換行符LF表示下一行,

蘋果機(MAC OS系統)則採用回車符CR表示下一行.

    CR用符號'\r'表示, 十進位制ASCII程式碼是13, 十六進位制程式碼為0x0D;

    LF使用'\n'符號表示, ASCII程式碼是10, 十六製為0x0A. 所以Windows平臺上換行在文字檔案中是使用 0d 0a 兩個位元組表示, 而UNIX和蘋果平臺上換行則是使用0a或0d一個位元組表示.

    一般作業系統上的執行庫會自動決定文字檔案的換行格式. 如一個程式在windows上執行就生成CR/LF換行格式的文字檔案,而在Linux上執行就生成LF格式換行的文字檔案. 在一個平臺上使用另一種換行符的檔案檔案可能會帶來意想不到的問題, 特別是在編輯程式程式碼時. 有時候程式碼在編輯器中顯示正常, 但在編輯時卻會因為換行符問題而出錯. 很多文字/程式碼編輯器帶有換行符轉換功能, 使用這個功能可以將文字檔案中的換行符在不同格式單互換.

    在不同平臺間使用FTP軟體傳送檔案時, 在ascii文字模式傳輸模式下, 一些FTP客戶端程式會自動對換行格式進行轉換. 經過這種傳輸的檔案位元組數可能會發生變化. 如果你不想ftp修改原檔案, 可以使用bin模式(二進位制模式)傳輸文字.


將unix轉換成Windows 格式時, 使用unix2dos或win2unix -r(-r代表反方向)即可

所有的轉義字元和所對應的意義:
轉義字元 意義 ASCII碼值(十進位制)
\a 響鈴(BEL) 007
\b 退格(BS) ,將當前位置移到前一列 008
\f 換頁(FF),將當前位置移到下頁開頭 012
\n 換行(LF) ,將當前位置移到下一行開頭 010
\r 回車(CR) ,將當前位置移到本行開頭 013
\t 水平製表(HT) (跳到下一個TAB位置) 009
\v 垂直製表(VT) 011
\\ 代表一個反斜線字元''\' 092
\' 代表一個單引號(撇號)字元 039
\" 代表一個雙引號字元 034
\0 空字元(NULL) 000
\ddd 1到3位八進位制數所代表的任意字元 三位八進位制
\xhh 1到2位十六進位制所代表的任意字元 二位十六進位制
注意:區分,斜槓:"/" 與 反斜槓:"\" ,此處不可互換

信 息在計算機上是用二進位制表示的,這種表示法讓人理解就很困難。因此計算機上都配有輸入和輸出裝置,這些裝置的主要目的就是,以一種人類可閱讀的形式將資訊 在這些裝置上顯示出來供人閱讀理解。為保證人類和裝置,裝置和計算機之間能進行正確的資訊交換,人們編制的統一的資訊交換程式碼,這就是ASCII碼錶,它的全稱是“美國資訊交換標準程式碼”。

八進位制 十六進位制 十進位制 字元 八進位制 十六進位制 十進位制 字元
00 00 0 nul 100 40 64 @
01 01 1 soh 101 41 65 A
02 02 2 stx 102 42 66 B
03 03 3 etx 103 43 67 C
04 04 4 eot 104 44 68 D
05 05 5 enq 105 45 69 E
06 06 6 ack 106 46 70 F
07 07 7 bel 107 47 71 G
10 08 8 bs 110 48 72 H
11 09 9 ht 111 49 73 I
12 0a 10 nl 112 4a 74 J
13 0b 11 vt 113 4b 75 K
14 0c 12 ff 114 4c 76 L
15 0d 13 er 115 4d 77 M
16 0e 14 so 116 4e 78 N
17 0f 15 si 117 4f 79 O
20 10 16 dle 120 50 80 P
21 11 17 dc1 121 51 81 Q
22 12 18 dc2 122 52 82 R
23 13 19 dc3 123 53 83 S
24 14 20 dc4 124 54 84 T
25 15 21 nak 125 55 85 U
26 16 22 syn 126 56 86 V
27 17 23 etb 127 57 87 W
30 18 24 can 130 58 88 X
31 19 25 em 131 59 89 Y
32 1a 26 sub 132 5a 90 Z
33 1b 27 esc 133 5b 91 [
34 1c 28 fs 134 5c 92 \
35 1d 29 gs 135 5d 93 ]
36 1e 30 re 136 5e 94 ^
37 1f 31 us 137 5f 95 _
40 20 32 sp 140 60 96 '
41 21 33 ! 141 61 97 a
42 22 34 " 142 62 98 b
43 23 35 # 143 63 99 c
44 24 36 $ 144 64 100 d
45 25 37 % 145 65 101 e
46 26 38 & 146 66 102 f
47 27 39 ` 147 67 103 g
50 28 40 ( 150 68 104 h
51 29 41 ) 151 69 105 i
52 2a 42 * 152 6a 106 j
53 2b 43 + 153 6b 107 k
54 2c 44 , 154 6c 108 l
55 2d 45 - 155 6d 109 m
56 2e 46 . 156 6e 110 n
57 2f 47 / 157 6f 111 o
60 30 48 0 160 70 112 p
61 31 49 1 161 71 113 q
62 32 50 2 162 72 114 r
63 33 51 3 163 73 115 s
64 34 52 4 164 74 116 t
65 35 53 5 165 75 117 u
66 36 54 6 166 76 118 v
67 37 55 7 167 77 119 w
70 38 56 8 170 78 120 x
71 39 57 9 171 79 121 y
72 3a 58 : 172 7a 122 z
73 3b 59 ; 173 7b 123 {
74 3c 60 < 174 7c 124 |
75 3d 61 = 175 7d 125 }
76 3e 62 > 176 7e 126 ~
77 3f 63 ? 177 7f 127 del