\n
在 C# 中,和有什么区别\r\n
?
9 回答
\n
是Unix,\r
是Mac,\r\n
是Windows。
有时它会带来麻烦,尤其是在跨平台运行代码时。您可以使用Environment.NewLine
.
请参考\r、\n 和 \r\n 有什么区别?!了解更多信息。快乐阅读
区别
有几个字符可以表示一个新行。常见的有这两种:
* '\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'
.
取自这里
"\n" 只是一个换行符 (Unicode U+000A)。这通常是 Unix 行分隔符。
"\r\n" 是回车符 (Unicode U+000D) 后跟换行符 (Unicode U+000A)。这通常是 Windows 行分隔符。
\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。现在您无需关心操作系统。
基本上归结为 Windows 标准:\r\n 和基于 Unix 的系统使用:\n
这是关于操作系统如何识别行尾的。
- Windows 用户 \r\n
- Mac 用户 \r
- Linux 使用\n
士气:如果您正在为 Windows 开发,请坚持使用 \r\n。或者更好的是,使用 C# 字符串函数来处理已经考虑行尾的字符串(WriteLine 等)。
\n 是 Unix(-like) 系统使用的换行符,\r\n 是 windows 使用的。这与 C# 无关。
它们只是\r\n and \n
变体。
\r\n
在windows中使用
\n
用于mac和linux
\r
插入U+000D回车\n
插入U+000ALINE FEED
您可以插入一个,或另一个,或两者:
\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
)