我就是记不住。那么,正确终止老式ASCII行的正确方法是什么呢?
Windows的\r\n将做得很好。
\r\n
我会用“return”这个词来记住,r在n之前。
序列为CR(回车)- LF(换行)。还记得点阵打印机吗?完全正确。正确的顺序是r n
从维基百科(你可以在那篇文章中读到适合你的操作系统):
基于ASCII或兼容的系统 字符集使用LF(行 feed, '\n', 0x0A,十进制10)或CR (回车,'\r', 0x0D, 13 in 十进制)单独,或CR by LF (CR+LF, '\r\n', 0x0D0A).
如果你使用c#,你应该使用Environment.NewLine,对应于MSDN,它是:
Environment.NewLine
对于非Unix平台,字符串包含“\r\n”;对于Unix平台,字符串包含“\n”。
在任何。net语言中,Environment.NewLine将更可取。
如果你正在使用c#,为什么不使用Environment.NewLine ?(我假设你使用一些文件写入器对象…只要将Environment.NewLine传递给它,它就会处理正确的终止符。
手动操作时要小心 事实上,我建议不完全这样做
实际上,我们讨论的是特定于平台的线路终止序列LTS。
如果你以文本模式打开一个文件(即不是二进制),那么流将把“\n”转换为适合你的平台的正确LTS。然后在读取文件时将LTS转换回“\n”。
因此,如果你把“\r\n”打印到一个windows文件中,你会在物理文件中得到“\r\r\n”的序列(用十六进制编辑器看看)。
当然,当涉及到在平台之间传输文件时,这是真正的痛苦。
现在,如果您正在写入网络流,那么我将手动执行此操作(因为大多数网络协议都专门调用此操作)。但是我要确保流没有做任何解释(所以二进制模式是合适的)。
新行取决于你的操作系统:
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/
如果有疑问,可以使用任何免费的十六进制查看器/编辑器来查看文件如何对新行进行编码。
对我来说,我使用以下指南来帮助我记住:0D0A = \r\n = CR,LF = carriage return, line feed
奇怪的是,我记得它,因为它是打字机的反面我用过 好吧,如果这是正常的,我就不需要记住它了……:-) < / p >
:-)
*Image from Wikipedia
在打字机中,当你完成对一行的数字时,你使用马车回力杆,它在使滚筒滚动之前,的换行符,和在允许你手动操作回车。
你可以听到这张唱片来自freesound.org开始时送纸的声音,并在-1:03秒左右结束时,铃声警告结束后为行鼓滚动的声音和一辆马车返回。
另一种方法是记住,与字母或数字顺序相比,0D 0A和\r \n都是反向或返回顺序。
0D 0A
\r \n