UNIX 与 WINDOWS 文本换行的差异

UNIX 与 WINDOWS 文本换行的差异


闲来无事翻了翻《Java开发手册》,就看到了下面这条规约:

【强制】IDE 的 text file encoding 设置为 UTF-8;IDE 中文件的换行符使用 UNIX 格式,不要使用 WINDOWS 格式。

手册并未对该条规约进行解释,于是试着自己上网搜寻答案,下面是简单的记录与总结:

在计算机出现之前,有一种叫做电传打字机(Teletype Model 33)的打字机器。这种设备每秒可以打10个字符,但是存在一个问题:每打完一行都需要花费0.2秒的时间进行换行(正好可以打两个字符),在次区间如果有新的字符传入,那么字符就会消失。为了解决这个问题,研发人员在每行后面加上两个表示结束的字符:

  • 回车:告诉打字机将打印头重新定位到打印纸的左侧
  • 换行:告诉打印机将打印纸向下移动一行。

后来“回车”和“换行”的概念也被搬到了计算机上。在当时计算机的存储资源及其宝贵,一部分科学家认为使用两个字符作为每行文本的结果太浪费内存,使用一个就可以,一部分科学家则坚持继续使用两个字符,于是就产生了分歧。

在 UNIX 系统中,每行文本的结尾是“换行”字符,即“/n”;在 Windows 系统中,每行文本的结尾有“换行”和“回车”字符,即“/n/r”;在 Max 系统中,每行文本的结尾是“回车”字符。

操作系统换行表示方式
Unix换行 /n
Max回车 /r
Windows换行回车 /n/r

由于使用了不懂的换行表示方式,一个直接的后果就是,在 Unix、Mac 系统下编辑好的文本在 Windows 系统中打开时,所有文字都将变为一行;在 Windows 系统中编辑好的文本 在 Unix、Mac 系统中打开时,每行文本的结尾可能会多出一个^M符号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值