\r\n 回车换行浅析

\r \012 10  x0a  return
\n \015 13  x0d  newline

Unix系统里,每行结尾只有“<换行>”,即“\n”;
Windows系统里面,每行结尾是“<回车><换行>”,即“\r\n”;
Mac系统里,每行结尾是“<回车>”。

一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。

实验1:
先生成一个换行(\n, 0x0A)和回车(\r, 0x0D)组合的文本

$ echo -en ‘12\n34\r56\n\r78\r\n‘ > tmp

以十六进制方式查看文本

$ od -t x1 tmp
0000000 31 32 0a 33 34 0d 35 36 0a 0d 37 38 0d 0a
0000016

// 0000016, 8进制表示长度
/r/n -> ^M
/n/r -> 换行 + ^M

不同进制输出文件内容

od dump files in octal and other formats
hexdump ascii, decimal, hexadecimal, octal dump

实验2:

1、^M 是ascii中的‘\r‘, 回车符,是16进制的0x0D,八进制的015,十进制的13
^M在vi编辑器中可以使用Ctrl+ v + m三个键打出来 ,双字节字符

$ od -t x1 cc
0000000 0d 0a
0000002

2、直接在vim 中输入 ^M

$ od -t x1 dd
0000000 5e 4d 0a
0000003
时间: 2024-10-22 08:58:44

\r\n 回车换行浅析的相关文章

通过UltraEdit(UE)转化\r\n(回车换行)与\n(换行)

\r\n(回车换行)是window上的换行符,\n(换行)是linux上的换行符,下面介绍通过UltraEdit(UE)在windows上实现相互转化. 1.\r\n(回车换行)转化为\n(换行) 用UE打开对应的文本文件,然后按照下图进行转化,转化后保存就OK了. 2.\n(换行)转化为\r\n(回车换行) 用UE打开对应的文本文件,然后按照下图进行转化,转化后保存就OK了.

(转)Java中的回车换行符/n /r /t

原文:http://hane00.blog.163.com/blog/static/1600615220126204446809/ '\r'是回车,'\n'是换行,前者使光标到行首,后者使光标下移一格.通常用的Enter是两个加起来.下面转一篇文章. 回车和换行 今天,我总算搞清楚“回车”(carriage return)和“换行”(line feed)这两个概念的来历和区别了. 在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符.但

换行(\r)和回车(\n)。

主要摘录自2篇blog: http://www.cnblogs.com/clarkchen/archive/2011/06/02/2068609.html http://www.360doc.com/content/12/1212/13/3735408_253588368.shtml 首先介绍一下常见的2个字符: 回车 \r 本义是光标重新回到本行开头,r的英文return,控制字符可以写成CR,即Carriage Return 换行 \n 本义是光标往下一行(不一定到下一行行首),n的英文ne

C++中回车换行(\n\r)和换行(\r)的区别

windows下的点一下回车,效果是:回车换行,就是\r\n unix系统下的回车一下就是一个\n 给出如下代码: [cpp] view plain copy print? #include <iostream> using namespace std; int main() { cout << "this is the first line\n"; cout << "this is the second line\r"; cou

【转载】 C++中回车换行(\n\r)和换行(\r)的区别

原文:http://blog.csdn.net/xiaofei2010/article/details/8458605 windows下的点一下回车,效果是:回车换行,就是\r\n unix系统下的回车一下就是一个\n 给出如下代码: #include <iostream> using namespace std; int main() { cout << "this is the first line\n"; cout << "this

【转载】Java中的回车换行符/n /r /t

source:http://hane00.blog.163.com/blog/static/1600615220126204446809/ '\r'是回车,'\n'是换行,前者使光标到行首,后者使光标下移一格.通常用的Enter是两个加起来.下面转一篇文章. 回车和换行 今天,我总算搞清楚“回车”(carriage return)和“换行”(line feed)这两个概念的来历和区别了. 在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个

Java中的回车换行符/n /r /t

'\r'是回车,'\n'是换行,前者使光标到行首,后者使光标下移一格.通常用的Enter是两个加起来.下面转一篇文章. 回车和换行 今天,我总算搞清楚"回车"(carriage return)和"换行"(line feed)这两个概念的来历和区别了. 在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符.但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符.要是在这0.2秒里面,又有

菜鸟教程之工具使用(八)——EGit禁止自动转换回车换行符

众所周知,Windows和Linux系统的回车换行是不一样的.想要进一步了解它们的可以阅读下面的介绍,不感兴趣的可以直接跳过. 产生背景 关于"回车"(carriage return)和"换行"(line feed)这两个概念的来历和区别.在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符.但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符.要是在这0.2秒里面,又有新的字符传过

回车换行的长度

* 1,js中回车换行的长度为1, 而java中计算的长度为2, db2中计算的长度也是2 两者不统一,如果输入的正好是边缘值,那前台通过了字数长度验证,但是后台插入到数据库时,会出错: 为了让js与java,db2统一,前台验证长度时 通过content.replace(/[\r\n]/g,"yy"),将回车换行随便让2个字符替换,这样前后台就统一了 *