vs报错“以下文件中的行尾不一致,是否将行尾标准化”
通过读取源文件,发现换行都使用的是“\n”
clipboard[1]
Windows和Unix不同的标准引起的…即“回车”和“换行”的问题…
符号 ASCII码 意义
\n 10 换行NL
\r 13 回车CR
在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。到了GUI时代光标都是自由移动的不再有回车的意义…
所以符合Windows开发标准的文本编辑器Visual Studio才会提醒你当前编辑的文本不符合Windows行尾标准…
1.Windows 中的换行符"\r\n"
2.Unix/Linux 平台换行符是 “\n”。
3.MessageBox.Show() 的换行符为 “\n”
4.Console 的换行符为 “\n”
换行符还因平台差异而不同。
解决方案:
-
为保持平台的通用性,可以用系统默认换行符 System.Environment.NewLine。
-
替换所有的非标准换行符