(在本文中 line separator == 行分隔符 == 換行符)
我們來看一下ASCII碼中對兩個控制字符的定義(ASCII碼對照表)
16進(jìn)制 | 縮寫 | 名稱 | |
---|---|---|---|
\n | 0A | LF | 換行鍵 |
\r | 0D | CR | 歸位鍵 |
以下是操作系統(tǒng)之間的差異
OS | 換行符 | 縮寫 | ASCII碼 |
---|---|---|---|
windows | \r\n | CRLF | 0D0A |
linux | \n | LF | 0A |
mac | \r | CR | 0D |
本人因為在實習(xí)時使用windows操作系統(tǒng)和ubuntu虛擬機(jī)芭挽,因為會遇到一些換行符的問題,如下
- 如果把windows的文件不經(jīng)過轉(zhuǎn)換放在linux下,當(dāng)我們?nèi)ヒ恍行凶x文件的時候量没,系統(tǒng)會識別'\n'為換行符而不是'\r\n'腔召,所以識別后每行后面會留下一個'\r'枫振,對應(yīng)的ASCII碼是'0D'澳化,可能會造成問題烁竭。
- 如果在Linux中運(yùn)行windows下編輯的腳本召边,是運(yùn)行不了的铺呵,可以通過查找將'\r\n'替換成'\n',如果有配合腳本運(yùn)行的外部文件隧熙,也務(wù)必要查看這些文件的換行符是否正確片挂。