57

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

4

9 回答 9

71

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

有时它会带来麻烦,尤其是在跨平台运行代码时。您可以使用Environment.NewLine.

请参考\r、\n 和 \r\n 有什么区别?!了解更多信息。快乐阅读

于 2010-10-21T09:42:55.330 回答
42

区别

有几个字符可以表示一个新行。常见的有这两种:

* '\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'.

取自这里

于 2010-10-21T09:41:13.073 回答
12

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

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

于 2010-10-21T09:40:45.740 回答
4

\n = LF (Line Feed) // 在 Unix 上用作换行符

\r = CR (Carriage Return) // 在 Mac 上用作换行符

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

(char)13 = \r = CR

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

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

于 2013-06-25T07:20:09.627 回答
2

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

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

于 2010-10-21T09:41:11.310 回答
0

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

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

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

于 2010-10-21T09:41:13.697 回答
0

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

于 2010-10-21T09:42:17.267 回答
0

它们只是\r\n and \n变体。

\r\n在windows中使用

\n用于mac和linux

于 2010-10-21T09:43:14.330 回答
0

您可以插入一个,或另一个,或两者:

  • \r\n刀片U+000DU+000A
  • \n\r刀片U+000AU+000D

如果您的意图是表示“结束”,不同的平台和不同的技术,希望您插入不同的内容:

  • 窗户:(U+000DU+000A \r\n
  • HTTP:(U+000DU+000A \r\n
  • HTML:(U+000A \n
  • Unix:(U+000A \n
  • 麦金塔:(U+000D \r
  • zOS:(U+0085 \x85
于 2022-03-05T17:15:29.207 回答