在C#中,\ n和\ r \ n之间有什么区别?
按照主题……
\n
是Unix, \r
是Mac, \r\n
是Windows。
有时它会给运行代码跨平台带来麻烦。 您可以使用Environment.NewLine
绕过此function。
请参考\ 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行分隔符。
基本上归结为Windows标准:\ r \ n和基于Unix的系统使用:\ n
这是关于操作系统如何识别线路末端。
- windows用户\ r \ n
- mac用户\ r
- linux使用\ n
士气:如果您正在为Windows开发,请坚持\ r \ n。 或者甚至更好,使用C#字符串函数来处理已经考虑行结尾的字符串(WriteLine等)。
使用Environment.NewLine
并不在乎。
\ n是Unix(类似)系统使用的换行符,\ r \ n由windows使用。 这与C#无关。
它们只是\r\n and \n
是变体。
\r\n
用于Windows
\n
用于mac和linux
\ 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)作为新行字符你的字符串,然后MS创建一个用于在Unix中运行.Net应用程序的VM,然后就会出现问题。 因此,当您需要新的行字符时,应始终使用Environment.NewLine。 现在您无需关心操作系统。