C# 之间的差异\015&\012和\r&\N 我有一个旧的C++程序,是编写文件并把它们移植到IBM主机上的。

C# 之间的差异\015&\012和\r&\N 我有一个旧的C++程序,是编写文件并把它们移植到IBM主机上的。,c#,.net,c++,encoding,C#,.net,C++,Encoding,此程序正在转换为C# 传输过程中似乎一切正常,但大型机查看器没有正确显示文件 \015和\012和\r和\n之间有什么区别?C++是使用数字,C是使用代码> > r\n>代码> < /p> 这可能是事情看起来不正常的原因吗 这些文件正在以ASCII格式传输,因此不确定为什么它看起来像垃圾 \015是一个八进制文字,C#不支持它。 C将其解析为\0(字符代码零),后跟两个字符15,\r\n和\015\012之间没有区别 在C(++)中,\0XX转义序列表示字符的八进制文字表示。如果将这些值打印为数

此程序正在转换为C#

传输过程中似乎一切正常,但大型机查看器没有正确显示文件

\015
\012
\r
\n
之间有什么区别?C++是使用数字,C是使用代码> > r\n>代码> < /p> 这可能是事情看起来不正常的原因吗


这些文件正在以ASCII格式传输,因此不确定为什么它看起来像垃圾

\015
是一个八进制文字,C#不支持它。

C将其解析为
\0
(字符代码零),后跟两个字符
15
\r\n
\015\012
之间没有区别

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


八进制是基数8,当转换为基数10时,
015
等于
13
012
等于
10
。我希望这能澄清问题。

不过,大型机端存在差异,这可能会用显式数字解释原始源代码。IBM大型机不会解释\r\n Garbarg Looking文件吗?是的,我认为这有点合乎逻辑。现代标准是非常现代的,因此旧的应用程序不了解\r\n(可能是交叉编译?)之类的内容,因此必须使用文字是理所当然的。