\n
和\r\n
有什么区别?\n
和\r\n
有什么区别?\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
* Unix (and hence Linux as well)
Unix使用单个'\n'来表示新的一行。
* Mac
Mac电脑使用单个'\r'
。
摘自这里
\r
了--现在它们使用\n
。而且,几乎所有存在的应用层互联网协议都使用\r\n
作为行末标识符。 - cHao"\n" 是一个换行符 (Unicode U+000A),通常用于表示 Unix 操作系统的行分隔符。
"\r\n" 是一个回车符 (Unicode U+000D) 后面跟着一个换行符 (Unicode U+000A),通常用于表示 Windows 操作系统的行分隔符。
\n
视为完整的换行符,但并非所有版本都是如此 - 如果您在记事本中查看相同的数据文件,则不会看到换行符。 - Jon Skeet\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(而不是 Environment.NewLine)作为换行字符,则 Microsoft 为在 Unix 中运行 .NET 应用程序创建虚拟机时会出现问题。因此,当您想要一个新的换行符号时,应始终使用 Environment.NewLine。 现在您无需考虑操作系统。
教训是:如果你正在为 Windows 开发,请坚持使用 \r\n。或者更好的办法是,使用 C# 字符串函数处理已经考虑了行尾的字符串(例如 WriteLine 等)。
\n 是 Unix(类似)系统使用的换行符,\r\n 是 Windows 使用的。这与 C# 无关。
它们只是\r\n和\n
的变体。
\r\n
在Windows中使用
\n
在Mac和Linux中使用