如图所示,发现用C#的 File.WriteAllLines 方法,无论怎么设置,最终生成的文件都是 PC utf8,也就是CRLF,用SVN进行提交的时候,显示左侧为utf8,右侧为utf8 BOM文件,甚是蛋疼。

最后的解决方法:

File.WriteAllText(strLuaFilePath, string.Join("\n", fileContentList.ToArray()), new System.Text.UTF8Encoding(false));

稍微普及一下常见的文件编码格式,以utf8、BOM为例

BOM 在文件头三位插入了“EF BB BF“

同样是Utf8,在Windows、Unix、Mac下却并不相同(回车CR ASCII码 13 — \r,换行 LF ASCII码 10 — \n,所以 CRLF — \0xD \0xA)。

平台

行尾结束符

Windows

CRLF —— \0xD \0xA,使用 回车 + 换行

Unix

LF —— \0xA,表示句尾,只使用换行

Mac

CR —— \0xD,只使用回车

CR —— Carriage-Return 回车(ASCII 13 \r)

LF —— Line-Feed 换行(ASCII 10 \n)

Visual Studio好像默认就是带BOM的,通常我们约定提交的*.cs文件全部是无BOM的utf8文件。

最新文章

  1. 关于原生JS获取类相关的代码
  2. spring随想
  3. A20(Cubieboard2)启动过程浅析
  4. kfreebsd不适用于实际环境
  5. iOS开发笔记8:Remote Notification远程消息推送处理
  6. C# GC 垃圾回收机制
  7. 【HDU 2160】母猪的故事
  8. MySQL与SQL比较有那些区别呢
  9. Linux 简单字符设备驱动程序 (自顶向下)
  10. 【开发工具 - Git】之Git版本回退
  11. FFmpeg常用基本命令
  12. 认识Require
  13. SSL证书安装指引
  14. oneNote总结
  15. Windows Server 2016-抢占FSMO角色
  16. shiro整合ehcache
  17. 在查询语句中使用 NOLOCK 和 READPAST
  18. java定时任务调度-Timer(1)
  19. TFS2018环境搭建一硬件要求
  20. String hashCode 方法为什么选择数字31作为乘子

热门文章

  1. 【AtCoder】ARC076
  2. python的random()函数
  3. Python学习(三十)—— Django框架简介
  4. websocket/dwebsocket 实现前后端的实时通信
  5. BZOJ4556 [Tjoi2016&Heoi2016]字符串 SA ST表 二分答案 主席树
  6. JavaEE-Servlet的部署和配置
  7. Python之路【第八篇】:面向对象的程序设计
  8. docker+springboot+elasticsearch+kibana+elasticsearch-head整合(详细说明 ,看这一篇就够了)
  9. 002.MySQL高可用主从复制部署
  10. Win userAccountControl 基本属性