微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么在Windows中换行符是2个字节?

在Windows上换行是2字节的原因是什么? 是不是 ASCII只是一个字节?

从历史上看,换行符由两个字符组成:U + 000D回车符(我在这里使用的Unicode是因为这就是我们现在使用的 – 当时它是ASCII或甚至可能不是)和U + 000A新行。 这两个是必要的,因为可以将打印头提前一行,而另一个则将其返回到下一行的开头。 比较一下,打字机上的纸卷(电传打字机是没有别的,实际上,只是连接到一台电脑),并移动回到右侧的杠杆为您的支架。

大多数网络协议保留CR + LF顺序,顺便说一下,这是Unix的奇怪之处。 当teletypes不存在并被视频终端替换,后来被终端仿真器替代时,对于双字符序列已经没有物理需求了。 此外,它使检查代码中的换行难,因为你总是要比较两个字节。 因此,(Multics及以后的)Unix决定只保留一个可以简化很多事情的角色。 C被指定为在文本模式下读取或写入数据流时,在U + 000A和平台本地换行顺序之间执行转换。

另一方面,Windows通过CP / M和DOS继承了CR + LF,为什么他们应该改认值呢? 向后兼容对于微软来说一直是一个强项,他们不可能在过去的某个时候打破这个目标(这可能会让一些非常愤怒的客户,我敢打赌)。

Mac OS(旧的)是另一个古怪的东西,只用CR来换行。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐