(在本文中 line separator == 行分隔符 == 换行符)
我们来看一下ASCII码中对两个控制字符的定义(ASCII码对照表)
16进制 | 缩写 | 名称 | |
---|---|---|---|
\n | 0A | LF | 换行键 |
\r | 0D | CR | 归位键 |
以下是操作系统之间的差异
OS | 换行符 | 缩写 | ASCII码 |
---|---|---|---|
windows | \r\n | CRLF | 0D0A |
linux | \n | LF | 0A |
mac | \r | CR | 0D |
本人因为在实习时使用windows操作系统和ubuntu虚拟机,因为会遇到一些换行符的问题,如下
- 如果把windows的文件不经过转换放在linux下,当我们去一行行读文件的时候,系统会识别'\n'为换行符而不是'\r\n',所以识别后每行后面会留下一个'\r',对应的ASCII码是'0D',可能会造成问题。
- 如果在Linux中运行windows下编辑的脚本,是运行不了的,可以通过查找将'\r\n'替换成'\n',如果有配合脚本运行的外部文件,也务必要查看这些文件的换行符是否正确。