提醒 – \ 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
,它会处理正确的终止符。