C#实用小知识:字符串里的换行
2022/2/4 11:46:18
本文主要是介绍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下的输出
这是mac下的输出
这是ubuntu下的输出
这是docker(windows下的WSL)下的输出
想要更快更方便的了解相关知识,可以关注微信公众号
这篇关于C#实用小知识:字符串里的换行的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-12-06使用Microsoft.Extensions.AI在.NET中生成嵌入向量
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#