当前位置: 首页 > news >正文

“换行”与“回车”

        在处理Android的bootanimation.zip文件时,压缩包里有一个desc.txt文件,而制作该zip包时,总喜欢在windows系统下制作打包,但将其push到android系统相应的/system/media/目录下后,修改了该文件的访问权限,重启下android后,Logo呢?一片漆黑。太伤心了,查找了一下,从网下下载了一个zip包,同样操作,都可以正常显示,为什么呢?只能比对查找一下,发现网上的zip包使用windows下打开其中的txt文件,都是显示在一行的,而我自己做的打开后都是换行了,故而在linux下打开,发现网上的没有异常显示,都是换行的,而我的打开后,在每行后面多了个^M符号,纠结,继续查找,终于发现了隐含其中的秘密:“回车”、“换行”,这两者有区别吗?在上学时,高中老师就跟我们说是一样的,于是怀着深信不疑的态度,继续纠结着。直到今天,不行,我必须解开这秘密了。于是总结如下:

    1、曾经的历史

      在计算机出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符,不过它有一个问题是打完一行字符换行的时候,要用去0.2秒,这正好够打两个字符。如果在这0.2秒里,又有新的字符传过来,那么这些新传过来的字符将丢失。于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做"回车",告诉打字机把打印头定位在左边界;另一个叫做"换行",告诉打字机把纸向下移一行。 

    2、今天的区别

      而电传打字机的处理方式被引入计算机系统,在计算机刚发明之初,由于存储器太贵,不同的专家对于在一行后面加CRLF两个字符觉得太浪费,加一个就可以了,于是有了如下的三分天下处理:

 OS 功能符 C语言表示  16进制表示
 Windows 回车+换行(CR+LF) \r\n 0x0d0a
 Linux/Unix 换行符(LF) \n 0x0a
 MAC 回车符(CR) \r 0x0d

      从表格一看,一切问题都清楚了,其中CR对应CTRL+M,而LF对应CTRL+J。在windows下编程打开文件时,有以“文本”、“二进制”的形式打开文件,而此时,以“文本”(即ASCII码)打开时,回车换行符会识别为LF,而以“二进制”方式则会识别为CRLF,故而在网络传输时更需要注意需要以“二进制”的方式传输数据,以适应多平台处理,屏蔽平台差异。

    3、为何叫CRLF

      CR:Carriage Return,回车,0x0d;

      LF:Line Feed,换行,0x0a。


http://www.mrgr.cn/news/62913.html

相关文章:

  • Web项目实战(附视频+文档)
  • PVE修改Ubuntu虚拟机的硬盘大小
  • python99乘法表和判断版本号大小
  • 华为云Stack名词解释
  • Java如何实现PDF转高质量图片
  • 在 Windows 系统上设置 MySQL8.0以支持远程连接
  • 深度数据修复软件哪个好?盘点2024年好用的4个数据恢复工具。
  • Redis新数据类型
  • 科研修图Adobe全家桶access
  • ANA基因组数据库(ANAgdb)
  • 【Leetcode】单调栈
  • 强化学习DQN实践(gymnasium+pytorch)
  • 人工智能生产力悖论:为什么大多数人没用上AI工具?
  • 得物App获评新奖项,正品保障夯实供应链创新水平
  • 今年双11,拼多多吹“新”风
  • tinyint数据库类型
  • SPA——MVC 与 MVVM - 2024最新版前端秋招面试短期突击面试题【100道】
  • 【测试工具】通过Jmeter压测存储过程
  • Git学习记录
  • 14. 不修改数组找出重复的数字
  • 【论文速读】Optimization-based Prompt Injection Attack to LLM-as-a-Judge
  • Python 从入门到实战43(Pandas数据结构)
  • 哈希函数简介
  • 【调试记录】CARLA车辆actor设置BehaviorAgent自动规划后不沿道路行驶
  • Terraform Provider 加速方案
  • 什么是 Spring Cloud Bus?我们需要它吗?