2010-10-21 122 views

回答

37

\n是Unix,\r是Mac,\r\n是Windows。

有時會出現問題,特別是在運行代碼跨平臺時。您可以通過使用Environment.NewLine來繞過此操作。

欲瞭解更多信息,請參閱What is the difference between \r, \n and \r\n ?!。快樂閱讀

+1

那麼爲什麼\ n在我的Windows機器上爲我工作? – 2016-12-09 22:39:25

+2

因爲現在的Windows並沒有像以前那樣嚴格,所以它也接受\ n。 – 2017-03-24 09:06:37

+0

@TobySmith我知道這篇文章已經過時了,但是您可以嘗試用「\ n」作爲linebreak寫一個文件,並用標準Windows編輯器打開它。除非你做了「\ r \ n」,否則他不會進行換行。 – 2017-08-16 13:14:02

8

「\ n」只是一個換行符(Unicode U + 000A)。這通常是Unix行分隔符。

「\ r \ n」是一個回車符(Unicode U + 000D)後跟一個換行符(Unicode U + 000A)。這通常是Windows行分隔符。

+0

Jon,但如果它只是換行,那麼爲什麼圖片中的文字看起來像它也有carrige返回http://i.stack.imgur.com/LKVCr.png?如果它只是一個換行符,那麼_bbb ..._不應該在第二行的最左邊...... – 2013-05-05 08:24:46

+1

@RoyiNamir:這一切都取決於顯示介質。所以它看起來像Windows控制檯shell現在將'\ n'視爲完整的換行符,但它可能並非在所有版本中 - 並且如果您在記事本中將同一數據視爲文件,則*不會*看到一行打破。 – 2013-05-05 08:45:48

31

的區別

有幾個字符,它可以指示一條新線。通常的是這兩個:

* '\n' or '0x0A' (10 in decimal) -> This character is called "Line Feed" (LF). 
* '\r' or '0x0D' (13 in decimal) -> This one is called "Carriage return" (CR). 

不同的操作系統以不同的方式處理換行符。這是最常見的的短名單:

* DOS and Windows 

他們希望換行是兩個字符的組合,即「\ r \ n」(或之後10月13日)。

* Unix (and hence Linux as well) 

Unix使用單個'\ n'來表示一個新行。

* Mac 

Macs使用單個'\r'

Here

+1

本書標記供將來參考 - 謝謝 – 2010-10-21 09:43:02

+1

AFAIK,Mac自從OSX以來沒有使用'\ r',它們現在使用'\ n'。幾乎每個應用層互聯網協議都使用'\ r \ n',而這些互聯網協議在線路上都是有效的。 – cHao 2011-12-28 16:15:59

1

這是關於操作系統如何識別行結束服用。

  • Windows用戶\ r \ n
  • Mac用戶\ r
  • Linux使用\ n

士氣:如果你是針對Windows開發,堅持用\ r \ n。或者甚至更好,使用C#字符串函數來處理已經考慮行尾的字符串(WriteLine等)。

1

使用Environment.NewLine並不關心。

+1

除非他正在閱讀由其他軟件生成的文件。 – 2010-10-21 09:42:42

1

\ n是Unix(類似於)系統使用的換行符,\ r \ n被windows使用。這與C#無關。

1

他們只是\r\n and \n是變種。

\r\n

\n在MAC使用Windows和Linux

1

\ N = LF(換行)//在unix

\ R = CR用作一個新行字符用於(回車)//在Mac用作一個新行字符

\ r \ N = CR + LF //在Windows

用作一個新行字符

(炭)13 = \ R = CR

Environment.NewLine =任何基於操作系統

//淨提供環境類,它提供基於操作系統許多數據上述代碼的,所以如果應用程序是在Windows中構建的,並且在字符串中使用CR + LF(「\ n \ r」而不是Environment.NewLine)作爲新行字符,然後MS創建一個用於在Unix中運行.Net應用程序的VM ,那麼會出現問題。 所以,當你想要一個新的行字符時,你應該總是使用Environment.NewLine。現在你不需要關心操作系統。

相關問題