Linux Windows MAC操作系统中换行符差异

我们通常会把应用部署在Linux上,而在使用vi查询应用日志时,可能会发现有一个^M符号,如下所示

[20121121 07:53:19][pool-3-thread-3][AbstractAction]^M 

------------------------------------------------------------------------------------------^M 

【通信双方】(0x00004AFE: nio socket, server, /192.168.13.3:59565 => /192.168.12.2:80)^M 

【收发标识】Receive^M 

【报文内容】POST /tra/trade/noCardNoPassword.htm HTTP/1.1^M 

Content-Type: application/x-www-form-urlencoded;charset=GB18030^M 

Cache-Control: no-cache^M 

Pragma: no-cache^M 

User-Agent: Java/1.6.0_24^M 

Host: 192.168.20.1^M 

Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2^M 

Connection: keep-alive^M 

Content-Length: 541^M 

^M 

cooBankNo=CMBC_CREDIT&signType=MD5&amount=499900&orderValidityNum=15&CVVNo=255^M 

------------------------------------------------------------------------------------------ 

[20121121 16:37:15][pool-3-thread-26][AbstractAction]^M 

------------------------------------------------------------------------------------------^M 

【通信双方】(0x0000E522: nio socket, server, /58.83.141.39:60796 => /192.168.12.2:80)^M 

【收发标识】Receive^M 

【报文内容】GET /notify_yeepay?p1_MerId=11&r0_Cmd=Buy&r1_Code=1&r2_TrxId=22 HTTP/1.1^M 

Content-Type: application/x-www-form-urlencoded; charset=GBK^M 

Cache-Control: no-cache^M 

Pragma: no-cache^M 

User-Agent: Java/1.5.0_14^M 

Host: 123.125.**.248^M 

Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2^M 

Connection: keep-alive^M 

^M 

^M 

------------------------------------------------------------------------------------------ 

这里就引伸出一个概念:换行符,也就是CR(Carriage Return)和LF(Line Feed)的问题
通常我们在EditPlus——工具——参数设置——文本——新建文件—>>中可以看到PC/UNIX/MAC三种格式
而在UltraEdit——高级——配置——文件处理——新建文件类型——>>中可以看到DOS/UNIX/MAC三种格式
而且UltraEdit在保存文件时也可以指定文件格式:DOS为CRLF,UNIX为LF,MAC为CR
实际上CR(回车符)和LF(换行符)都是用来表示下一行的,只不过各个系统采用的方式不同而已
DOS/Windows系统采用CRLF(即回车+换行)表示下一行
Linux/UNIX系统采用LF表示下一行
MAC系统采用CR表示下一行
注:CR的ASCII是十进制数的13,十六进制的0x0D,LF为10和0x0A

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/20535.html