从前,用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#实用小知识:字符串里的换行相关推荐

  1. 内功小知识 | 计算机里的涡轮增压 - CPU 睿频

    大家好,我是飞哥! 今天给大家带来第一期的内功修炼小知识 - CPU 睿频. 从事服务器端的同学经常会喜欢说自己接口的性能指标是单核处理能力能达到多少多少.但严格意义上说这个说法是不严谨的,原因有两个 ...

  2. VC实用小知识总结 (一),转http://blog.csdn.net/myiszjf/article/details/10007431

    在上一篇中,我们以经介绍了程序的流程和框架,在本篇将详细讨论各个功能的实现主要包括 1.获取磁盘信息 2.获取目录信息 3.获取文件信息 4.运行指定文件 5.删除指定文件 6.删除指定目录 7.创建 ...

  3. 【实用小知识】常用的软件测试方法

    随着软件测试技术的不断发展,测试方法也越来越多样化,针对性更强:选择合适的软件测试方法可以让我们事半功倍.以下是一些常用的软件测试方法: β测试_Beta测试 β测试,英文是Beta testing. ...

  4. Vue3那些实用小知识~

    Vue3之Mockjs的使用 01 Mockjs的特性 为什么mockjs在前端这么受欢迎呢,首先它有很多特性,如下: 数据类型丰富 支持生成伪随机数据,如文本.数字.布尔值.日期.邮箱.链接.图片. ...

  5. Maven在Eclipse中的实用小技巧

    前言 我们在开发的工程中很多都是Maven项目,这样更加便于我们jar包的管理.而我们一般使用的IDE都是Eclipse,由于我们在日常的开发过程中会经常要用到一些Maven的操作,所以我今天主要跟大 ...

  6. php微信里面换行符,如何在字符串中间加换行符js微信小程序实现人脸识别

    本文为大家分享了微信小程序人脸识别的具体代码,供大家参考,具体内容如下 首先,我们要有开发者工具,今天所说的是后端和前端联合起来实现的. 在PHP的控制器中写一个upload方法,代码如下: publ ...

  7. Python初学小知识(五):字符串

    Python初学小知识(五):字符串 九.字符串 1. 字符串使用范围广.且极其方便 字符串的切片是是半闭半开区间,不包括最后的位置. 2. 字符串的各种方法 2.1 大小写转换 2.2 左中右对齐 ...

  8. 终于搞懂了!字符串拼接的各种姿势以及底层的小知识

    文章目录 前言 一. 字符串拼接的小知识 二.锁消除和锁粗化 2.1 锁消除 2.2 锁粗化 三.逃逸分析 3.1 逃逸分析是什么 3.2 逃逸分析对性能的影响 3.3 逃逸分析的优化 四.总结 参考 ...

  9. c语言代码游戏跳一跳,微信小程序《跳一跳》游戏里的编程小知识,你知道吗?...

    微信小程序<跳一跳>游戏里的编程小知识,你知道吗? 今日你跳了吗? 玩过的朋友都知道,跳一跳里的游戏操作非常简单,就用手指按住屏幕按住施放进行跳跃,整个游戏是个人都可以很轻松玩起来! 游戏 ...

最新文章

  1. 网络常见的 9 大命令,非常实用!
  2. Robust 源代码分析之gradle-plugin
  3. 今日浅谈循环 for与while
  4. 接口本地正常服务器报500_运维该如何解决服务器底层维护难题?
  5. C# Socket tcp 发送数据大小问题
  6. Unicode -- 从code point到UTF16的计算方法
  7. H265H264视频流播放
  8. GO语言 使用hash 表
  9. 2010年8月初 泉州将地震 预言还是谣言?
  10. 戴尔台式计算机主板型号,戴尔台式机主板型号_昨天拿戴尔台式电脑去修说主板坏了,今天去拿的。结果说主板拆不下。_戴尔台式机主板...
  11. vs2019新手怎么解决命名空间“”中不存在类型或命名空间名“”(是否缺少程序集引用?)问题全解
  12. 7+1 款国产的在线HTML编辑器
  13. curator分布式锁
  14. Kafka处理服务器发来的消息并与数据库交互——具体流程
  15. MacOS下安装及配置Maven
  16. 三分钟带你看懂HDMI接口的PCB设计
  17. 如何制作污水处理流程图?简单方式说明
  18. 每周记录(4月底停更了qvq)
  19. 中国企业互联网CEO峰会”听e签宝金宏洲讲新趋势
  20. 查询工作日 oracle,Oracle function实现根据输入的日期以及天数,获取此日期之后的天数的工作日...

热门文章

  1. Win7系统如何设置QQ监控孩子上网(图文)
  2. 作为uboot到kernel中DTS DTSI DTB等关系
  3. SocketIO介绍及用法
  4. 织梦塔扇风扇空调扇等制冷设备展示公司网站模板(带手机端)
  5. hg8245设置无线打印服务器,华为hg8245无线设置方法是什么?
  6. ElasticSearch:Request cannot be executed; I/O reactor status: STOPPED
  7. RFC2544丢包率测试——信而泰网络测试仪实操
  8. 自定义Button形状(圆形、椭圆) shape
  9. CSS什么情况引起回流,回流(重排)与重绘 —— 什么是回流和重绘,造成的原因是什么,如何去减少?...
  10. 【精品】河南网通如何进行宽带拨号链接及网络共享