\015和\012与\r和\n的区别是什么?

9
我有一个旧的C++程序,它正在编写文件并将它们FTP到IBM大型机上。
现在这个程序正在被转换成C#。
在传输过程中一切似乎都很正常,但是大型机查看器却不能正确显示文件。
\015和\012与\r和\n之间有什么区别?C++使用数字,而C#使用\r\n。
这可能是事情出现问题的原因吗?
这些文件作为ASCII传输,所以不确定为什么看起来像垃圾!
2个回答

8

\015 是一个八进制字面量,在C#中不受支持。
C#解析它为\0(字符代码零),后跟两个字符 15


7

\r\n\015\012没有区别。

在C(++)中,\0XX转义序列表示char的八进制字面值。如果您将这些值打印为数字,则应该看到\r等于13,而\n等于10

八进制是基数8,当转换成十进制时,015等于13,而012等于10。希望这能澄清事情。


主机端存在差异,这可能解释了原始源使用显式数字的原因。 - Bo Persson
IBM主机不会解释\r \n,因此会出现垃圾文件外观吗? - Jon
是的,我认为这在某种程度上是合乎逻辑的。现代标准是现代的,所以一个旧的应用程序很可能没有使用 \r\n(可能是交叉编译),因此不得不使用文字表示。 - Kaslai

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接