C# 之间的差异\015&\012和\r&\N 我有一个旧的C++程序,是编写文件并把它们移植到IBM主机上的。
此程序正在转换为C# 传输过程中似乎一切正常,但大型机查看器没有正确显示文件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转义序列表示字符的八进制文字表示。如果将这些值打印为数
\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(可能是交叉编译?)之类的内容,因此必须使用文字是理所当然的。