提醒 – \ r \ n或\ n \ r?

我只是不记得那些。 那么,正确地终止老式的ASCII码的方法是什么?

我会用'rurur n '这个词来记住,r在n之前。

如果你使用的是C#,你应该使用Environment.NewLine ,相应的MSDN是:

包含用于非Unix平台的“\ r \ n”的string,或用于Unix平台的包含“\ n”的string。

新行取决于你的操作系统:

 DOS & Windows: \r\n 0D0A (hex), 13,10 (decimal) Unix & Mac OS X: \n, 0A, 10 Macintosh (OS 9): \r, 0D, 13 

更多细节在这里: https : //ccrma.stanford.edu/~craig/utility/flip/

如有疑问,请使用任何免费的hex查看器/编辑器来查看文件如何编码其新行。

对我来说,我使用以下指南来帮助我记住:0D0A = \ r \ n = CR,LF = ca rr iage r iturn,li e e feed

顺序是CR(回车) – LF(换行)。 记得点阵打印机? 究竟。 所以 – 正确的顺序是\ r \ n

在任何.NET语言, Environment.NewLine将是可取的。

手动做这个要小心。
事实上,我会build议要这样做。

实际上,我们正在讨论平台专用的线路终止序列LTS。

如果以文本模式打开文件(即不是二进制文件),那么这些数据stream会将“\ n”转换为您的平台的正确LTS。 然后在读取文件时将LTS转换回“\ n”。

因此,如果将“\ r \ n”打印到Windows文件中,您将在物理文件中获得序列“\ r \ r \ n”(使用hex编辑器查看)。

当然,在平台之间传输文件时,这是非常痛苦的。

现在,如果你正在写一个networkingstream,那么我会手动完成这个工作(因为大多数networking协议都会特别提到这个问题)。 但是我会确保这个stream没有做任何解释(所以二进制模式是合适的)。

\r\n为Windows将做得很好。

从维基百科 (你可以在这篇文章中看到你的操作系统是正确的):

基于ASCII或兼容字符集的系统分别使用LF(换行符'\ n',0x0A,十进制10)或CR(回车符'\ r',0x0D,十进制13) LF(CR + LF,'\ r \ n',0x0D0A)。

\r\n

奇怪的是我记得,因为它是我使用的打字机的反面
那么如果这是正常的,我没有必要记住它: :-)

打字机从维基百科 *图片来自维基百科

在打字机上完成数码行的操作时 ,使用回车杆 ,在打开滚筒, 换行符之前 ,然后允许您手动操作回车

您可以从freesound.org上的这个logging中听到开始时的纸张input声音,并且在从结束处开始大约-1:03秒钟之后,在滚动的鼓声的结束之后的铃声警告之后回车之一。

如果你使用C#,为什么不使用Environment.NewLine ? (我假设你使用一些文件编写器对象…只是传递给它的Environment.NewLine ,它会处理正确的终止符。