编程小知识之换行

引子

之前一直依稀有些认识:不同操作系统间的换行符有所差异,但是并没有很详细的了解,对于换行符差异可能引起的问题也没有多少概念.近来遇到了一个在Android上读取文件失败的问题,最后发现正是换行符差异造成的,遂而查阅了一些相关资料,在此简单记下~

知识

换行符的来历不赘述了,有兴趣的朋友可以看下这里,总之,目前大概有 3种 换行符的表示方式(仅罗列主要操作系统):

Windows Unix,Linux(包括Android和iOS)以及Mac OS 10(包括)以上版本 Mac OS 9(包括)以下版本
\r\n \n \r

其中:

\r 为回车符号CR(Carriage Return, Unicode中的编码为 000D)
\n 为换行符号LF(Line feed, Unicode中的编码为 000A)

示例

OK,基础知识就这么些,现在看个示例:

假设我在Windows上创建了一个文本文件(用来配置某个文件的路径), 内容如下(注意文件内容最后有换行):

FolderName/FileName

文件实际的保存内容是这样的(注意换行的表示):

FolderName/FileName\r\n

然后我们尝试在Linux上读取该文件,由于Linux中认为\n才是换行符,所以最后读取到的内容是这样的(注意文件内容较之前多了一个\r):

FolderName/FileName\r

之前提到的那个Android上读取文件失败的问题就在于此了~

猜你喜欢

转载自blog.csdn.net/tkokof1/article/details/79169540
今日推荐