不同平台造成的文本换行符差异(CRLF)
问题背景
还记得自己之前提交代码(win->linux),提交完后系统就奔溃了,笔者当时就懵逼了。到服务器上一看代码,每行代码末尾无端的了多了 ^M 的字符。
今天往Git上提交时,又遇到了
1warning: LF will be replaced by CRLF in stuManager1/GitTest.txt.
当然,对于warning,您完全可以置之不理。
好了,到这里,我们可以说说上面问题的本质原因了。
涉及知识
对于文本处理,不同平台使用的换行操作符是不一样的。这也就是上述问题产生的原因了。
实际编程中,大家应该写过123\r\n//或者\n
我们给这俩字符起个名字:
|
|
Dos和Windows采用回车+换行CRLF表示下一行
而UNIX/Linux采用换行符LF表示下一行
MAC OS系统采用回车符CR表示下一行
解决方案
- 命令式
|
|
- 工具式
Notepad++ :
Beyond Compare:
附加知识点
对于ASCII 文本格式,不同平台通过FTP传输时,有可能自动转换。
可以使用bin模式(二进制模式)传输文本来防止转换。linux下通过命令
file yourfile
查看文件 换行符;