Linux下给文件添加BOM头

至于BOM是什么,这里就不解释了,百科解释的很详细,BOM - 字节顺序标记(ByteOrderMark)

简单来说,BOM主要是为了解决Linux文件在Windows上乱码的问题

主要有以下几个场景:

  1. 在linux上生成一个csv文件,在excel中打开,乱码
  2. 在linux生成一个txt文件,在windows上用记事本打开,乱码

linux上是无视BOM的,在linux上生成的文件也是不带BOM,尽管不带BOM的utf-8才是标准,但是为了能在windows上打开文件不乱吗,我们就需要手动添加BOM头

用法:

# 在report.csv文件中添加BOM头

printf '\xEF\xBB\xBF' > report_new.csv
cat report.csv >> report_new.csv

需要注意的是: windows记事本默认会给文件添加BOM头,尽管这几个字符正常情况肉眼不可见,但是在程序处理这些文件时,这些字符是能被识别到的,所以经常会出现看似正常的文件,程序处理却报错,以及window上看似正确的脚本在Linux下执行却报错。 所以建议使用sublime,而不是windows自带的记事本来编辑文件。

欢迎订阅「K叔区块链」 - 专注于区块链技术学习

博客地址:http://www.jouypub.com

简书主页:https://www.jianshu.com/u/756c9c8ae984

segmentfault主页:https://segmentfault.com/blog/jouypub

腾讯云主页:https://cloud.tencent.com/developer/column/72548

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序员的SOD蜜

单数据库,多数据库,单实例,多实例不同情况下的数据访问效率测试

最近公司的项目准备优化一下系统的性能,希望在数据库方面看有没有提升的空间,目前压力测试发现数据库服务器压力还不够大,Web服务器压力也不是很大的情况下,前台页面...

258100
来自专栏技术博客

MVC项目开发中那些用到的知识点(Asp.Net Mvc3.0 Areas)

   我们知道MVC项目各部分职责比较清晰,相比较ASP.NET Webform而言,MVC项目的业务逻辑和页面展现较好地分离开来,这样的做法有许多优点,比如可...

15010
来自专栏逢魔安全实验室

DDCTF 2018 逆向 baby_mips Writeup

38550
来自专栏智能计算时代

「大数据系列」:Apache zeppelin 多目标笔记本

Apache Zeppelin解释器概念允许将任何语言/数据处理后端插入Zeppelin。 目前Apache Zeppelin支持许多解释器,如Apache S...

28330
来自专栏社区的朋友们

TAF 必修课(四):过载保护

经过实习过程中,leader和导师在思维逻辑上的指导,自己再有意识的加以训练,我觉得非常受益。就如这部分的理解,目前就加深了很多。所以说,思维决定行为、行为决定...

87300
来自专栏比原链

剥开比原看代码17:比原是如何显示交易的详细信息的?

Gitee地址:https://gitee.com/BytomBlockchain/bytom

8510
来自专栏jessetalks

bootstrap + requireJS+ director+ knockout + web API = 一个时髦的单页程序

也许单页程序(Single Page Application)并不是什么时髦的玩意,像Gmail在很早之前就已经在使用这种模式。通常的说法是它通过避免页面刷新...

33350
来自专栏安富莱嵌入式技术分享

【二代示波器教程】第13章 RTX操作系统版本二代示波器实现

本章教程为大家讲解RTX操作系统版本的二代示波器实现。主要讲解RTOS设计框架,即各个任务实现的功能,任务间的通信方案选择,任务栈,系统栈以及全局变量共享问题。...

18320
来自专栏lgp20151222

Java规则引擎drools:drt动态生成规则并附上具体项目逻辑

由于本人的码云太多太乱了,于是决定一个一个的整合到一个springboot项目里面。

29720
来自专栏逍遥剑客的游戏开发

公交车线路查询系统

55060

扫码关注云+社区

领取腾讯云代金券