有没有在Linux下查看windows 文本文件的时候行结尾出现大量的^M.
^M是什么?
这个字符就是换行符,因为window和Linux下对行尾的换行的定义不同,导致跨平台解析的时候,会出现不一致的显示.
换行符的不同
Windows:
\r\n
Linux/Unix:
\n
Mac:
\r
由此可知,因为定义不同,就需要我们在跨平台对文本进行解析的时候注意到这点,并进行有效的规避.可以看看很多优秀的对文件进行解析的库中是如何实现的.
一点历史
早期的计算机输出设备不是显示器,而是电传打字机,结构与普通的打字机差不多。有一个打印头在纸上打字,同时有一个电动机控制纸张的进出。当打印头到达行尾的时候,需要两个动作才能够到达下一行的行首:首先执行回车动作,将打印头移动到本行的行首,然后进行换行动作,电动机将纸张向上移动一行,这样打印头就处于下一行的行首,可以继续进行打印。回车和换行对应的控制字符分别是\r和\n,这就是windows中换行符为\r\n的由来。后来由于经常连续执行,所以在打印机中将这两个控制字符简化为一个控制字符,这就是Linux/Unix中的换行符\n的由来.
常用工具
dos2unix 将window下文本文件转成符合Linux系统要求的文件
unix2dos 与上面的命令的作用相反
用一定的格式查看文件,可以用来仔细看看字符的区别
od - dump files in octal and other formats
参考 https://blog.csdn.net/lucky_greenegg/article/details/43232211