在C#中,\ n和\ r \ n之间有什么区别?

时间:2010-10-21 09:38:30

标签: c# newline linefeed carriage-return

按照主题......

9 个答案:

答案 0 :(得分:40)

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

有时特别是在运行代码跨平台时会遇到麻烦。您可以使用Environment.NewLine

绕过此操作

有关详细信息,请参阅What is the difference between \r, \n and \r\n ?!。快乐阅读

答案 1 :(得分:32)

  

差异

有几个字符可以表示新行。通常的是这两个:

* '\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'(或13后跟10)。

* Unix (and hence Linux as well)

Unix使用单个'\ n'来表示新行。

* Mac

Mac使用单个'\r'

取自Here

答案 2 :(得分:10)

“\ n”只是一个换行符(Unicode U + 000A)。这通常是Unix行分隔符。

“\ r \ n”是回车符(Unicode U + 000D),后跟换行符(Unicode U + 000A)。这通常是Windows行分隔符。

答案 3 :(得分:3)

基本上归结为Windows标准:\ r \ n和基于Unix的系统使用:\ n

http://en.wikipedia.org/wiki/Newline

答案 4 :(得分:1)

这是关于操作系统如何识别行结束的。

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

士气:如果您正在为Windows开发,请坚持使用\ r \ n。或者甚至更好,使用C#字符串函数来处理已经考虑行结尾的字符串(WriteLine等)。

答案 5 :(得分:1)

使用Environment.NewLine但不在乎。

答案 6 :(得分:1)

\ n是Unix(类似)系统使用的换行符,\ r \ n由windows使用。这与C#无关。

答案 7 :(得分:1)

他们只是\r\n and \n的变体。

\r\n用于Windows

\n用于mac和linux

答案 8 :(得分:1)

\ n = LF(换行)//在Unix上用作新行字符

\ r = CR(回车)//用作Mac上的换行符

\ r \ n = CR + LF //在Windows上用作新行字符

(char)13 = \ r = CR

Environment.NewLine =以上基于操作系统的任何代码

// .NET提供了基于操作系统提供许多数据的Environment类,因此如果应用程序是在Windows上构建的,并且使用CR + LF(“\ n \ r”而不是Environment.NewLine)作为你的字符串中的新行字符,然后Microsoft创建一个用于在Unix中运行.NET应用程序的VM,然后就会出现问题。 因此,当您需要换行符时,应始终使用Environment.NewLine。现在您无需关心操作系统。