C#实用小知识:字符串里的换行

C#实用小知识:字符串里的换行从前,用asp.netcore写了一个给客户发交易明细的应用,每天发一次,因为是csv格式,当时用的是StringBuilder来一行一行组装数据,组装完后,EMali或SFTP给客户。后来,为节省服务器资源,需要把服务从windowsserver迁移到Linux上,经过反复测试,都没有发现B

大家好,欢迎来到IT知识分享网。

C#实用小知识:字符串里的换行

 

 

 

  从前,用asp.net core写了一个给客户发交易明细的应用,每天发一次,因为是csv格式,当时用的是StringBuilder来一行一行组装数据,组装完后,EMali或SFTP给客户。

  后来,为节省服务器资源,需要把服务从windows server迁移到Linux上,经过反复测试,都没有发现Bug,就上线了。结果悲剧发生了,用户说我们传的csv格式与以前不一样,我们打开怎么看都是对的,后来,在“心(ri)细(ben)”的同事提示下,我们用sakura文本编辑器打开查看,果不其然,每个换行都不一样,原来在windows下是“\r\n”,在Linux上是“\n”,为什么呢?看代码吧。

WriteLine("---------StringBuilder---------");
 var contentBuilder = new StringBuilder();
 contentBuilder.AppendLine("line00001");
 contentBuilder.AppendLine("line00002");
 contentBuilder.AppendLine("line00003");
 var content = contentBuilder.ToString();
 Console.WriteLine(content);
  //为了显示出\r\n进行一个替换
 Console.WriteLine(content.Replace("\r", "\\r").Replace("\n", "\\n"));
 Console.WriteLine();
 Console.WriteLine();
 //Environment.NewLin也同样是这个坑
 Console.WriteLine("---------Environment.NewLine-------- ");
 content = "line0000A" + Environment.NewLine + "line0000B";
 Console.WriteLine(content);
 Console.WriteLine();
 Console.WriteLine(content.Replace("\r", "\\r").Replace("\n", "\\n"));
 ReadLine();

这是windows下的输出

C#实用小知识:字符串里的换行

 

 

 这是mac下的输出

C#实用小知识:字符串里的换行

 

 

 这是ubuntu下的输出

C#实用小知识:字符串里的换行

 

 

 这是docker(windows下的WSL)下的输出

C#实用小知识:字符串里的换行

 

 

 

  想要更快更方便的了解相关知识,可以关注微信公众号 
 
C#实用小知识:字符串里的换行

 

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/31939.html

(0)
上一篇 2023-11-15 14:15
下一篇 2023-11-15 22:45

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信