当从windows上传一个txt文件到linux系统后发现出现了多于的字符^M,莫名其妙,后来发现原来是系统间换行符不兼容导致的,windows的回车换行是CRLF两个字符,unix是 LF,mac操作系统是CR,因此如果你把windows系统上创建的文本拿到unix系统上,那就会在每个LF前面多个CR,也就是说每一行的行尾都会多出一个字符^M(至于为什么显示为^M没找到缘由,Ascii码表控制字符的字符,Ctrl,代码分别表示什么意思暂时也未知)。同理,如果将windows系统上默认创建的txt文本放到mac系统上,则会导致从除第一行外每一行头部多出一个^J。反过来,如果在unix/mac上创建的文本上传到windows上面会出现不换行的现象,综上,这种问题的产生就是由操作系统兼容性问题导致的,平时也会经常遇到这类问题。