文本编辑 UTF-8 BOM 中的BOM释义

参考资料

  1. UTF8のBOM無しとBOM付きの違い
  2. BOMなしUTF-8によってWindowsでもたらされる困惑
  3. 文字コードをUTF-8 BOMなし(UTF-8N)でファイル保存をする方法

目录

  • 一. 前提
  • 二. BOM
  • 三. CSV文件中的表现


一. 前提

在使用Windows自带的记事本编辑.csv文件的时候,准备保存为UTF-8编码时,发现了有如下两个选项

  • UTF-8
  • 带有 BOM 的 UTF-8

在这里插入图片描述
😵这两种格式有什么区别?BOM到底是啥?


二. BOM

🤔在网上找到了张图,如下图所示EF BB BF就是BOM标记。
在这里插入图片描述
YUTF8.txtYUTF8BOM.txt 两个文本文件的内容相同,都是1,2,3,4

⏹BOM(Byte Order Mark),字节顺序标记,出现在文本文件头部,是一个不可见的隐藏字符。
一般用来帮助一些应用程序识别文件的编码,尤其是在处理包含非ASCII字符的文本文件时。
含BOM的文本文件和不含BOM的文本文件的唯一区别就是文件开头是否带不可见的隐藏字符,除此之外没有区别。

⏹2018年末之前的Win10自带的记事本,保存的时候会自动给文本文件添加BOM,随着2018年末的Win10升级,终于给记事本添加了是否带BOM保存的选项。

⏹在日本,UTF-8 不含BOM叫 UTF-8 BOMなし,也叫 UTF-8N

⏹一般保存代码文件之类的,都不会带BOM。


三. CSV文件中的表现

⏹有两个CSV文件,csv1.csvcsv2.csv,文件内容如下:

贾飞天,哈哈,你好
AAA,BBB,CCC

⏹其中csv1.csv用UTF-8保存,而csv2.csv用UTF-8 BOM保存,2个文件的磁盘占用如下所示

在这里插入图片描述

🤔可以看到csv1.csv占用了36个字节,明明是相同的内容,而csv2.csv却占用了39个字节,多出来的3个字节就是BOM所占用的。

😅可以看到,用纯UTF-8编码保存的CSV文件用Excel文件打开会乱码,但是用UTF-8 BOM编码保存事务CSV文件却不会乱码。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/173114.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 基础学习(一)Java环境搭建和基本数据类型

1 Java 开发环境搭建 1.1 Java 编程语言 1.1.1 什么是Java编程语言 语言是人类进行沟通交流的各种表达符号,方便人与人之间进行沟通与信息交换;而计算机编程语言则是人与计算机之间进行信息交流沟通的一种特殊语言,也有语法规则、字符、符…

kali linux英文改中文

如果英语基础较好的同学可以不用调整 反之则需要 找到终端(就是输入命令的那个地方 如下)点击它出现命令终端 切换为root用户,命令为: sudo dpkg-reconfigure locales 然后回车 找到这个zh_CN 然后回车 鼠标下键选中并且回车 输…

自动驾驶学习笔记(十一)——高精地图

#Apollo开发者# 学习课程的传送门如下,当您也准备学习自动驾驶时,可以和我一同前往: 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo Beta宣讲和线下沙龙》免费报名—>传送门 文章目录 前言 高精地图 地图采集 底图制作 地图…

HCIA-H12-811题目解析(1)

1、【多选题】关于动态 MAC 地址表说法正确的是? A、通过报文中的源MAC地址学习获得的动态MAC表项会老化 B、通过查看指定动态MAC地址表项的个数,可以获取接口下通信的用户数 C、在设备重启后,之前的动态表项会丢失 D、在设备重启后&…

Vue打包错误UnhandledPromiseRejectionWarning: CssSyntaxError

错误详情如下: building for production...Error processing file: static/css/app.3d5caae7aaba719754d7d5c30b864551.css (node:33011) UnhandledPromiseRejectionWarning: CssSyntaxError: /Users/yt/Documents/BM/sims-plus/sims-website/static/css/app.3d5caa…

Docker笔记-Docker搭建最新版zabbix服务端(2023-07-31)

前言 一开始问chartgpt上,搭建的思路是对的,但命令和细节有问题,最后还是依靠StackOverflow解决的。一开始在amd的linux上搭建好docker版的zabbix,但放到arm的机器上就报错了,原因是指令集不匹配,最后跑到…

C#每天复习一个重要小知识day9:常量和静态变量

常量(Const)是指在程序中定义的固定不变的数值或者对象,其值在程序执行过程中不能被修改。常量在程序中起到了固定数值或者对象的作用,使得程序的逻辑更加清晰和可维护。 Const(常量)可以理解为特殊的stat…

网关知识总结

网关(Gateway)是一种网络设备或软件,用于连接两个不同的网络或协议,并能够在这两个网络或协议之间进行数据交换。网关是网络体系结构中的重要组成部分,它可以使不同的网络或协议相互通信,实现数据的传输和处…

基于PLC的果园灌溉系统设计(论文+源码)

1.系统设计 系统示意图如图2-1所示。某一果园 共有3个灌溉区域,分别为灌溉1#区,灌溉2#区,灌溉3#区,分别使用不同湿度传感器检测湿度,用于各区域控制湿度,进行灌溉,使用相应的灌溉阀进行灌溉。这…

Go语言的学习笔记3——Go语言项目布局

Go 1.11 版本开始引入 go.mod 和 go.sum 以支持Go Module构建机制,而这种机制成为官方的依赖包管理方式。 现在Go可执行程序项目的典型布局如下所示: exe-layout ├── cmd/ │ ├── app1/ │ │ └── main.go │ └── app2/ │ └…

使用python提取出身份证的出生日期(18位和15位)

有的时候我们需要在身份证中提取出出生日期,只是我们的身份证有两种,一种是15位,一种是18位,提取的时候就有点麻烦,记录一下,直接上代码,用的是python,其他语言也可以用这个逻辑。 …

CCC联盟数字车钥匙(三)——UWB MAC时间网格同步及Hopping

本文继续上一篇UWB MAC时间网格继续介绍UWB MAC中关于时间同步相关内容。 3、MAC时间网格同步 每个测距会话的定义都基于相对的指定时钟参考 U W B t i m e 0 k UWB^k_{time0} UWBtime0k​,相对于发起者的内部时钟定义。 时钟参考 U W B t i m e 0 k UWB^k_{time0} …

关于营销的一些总结

多用图,少用点。(要关联其他文章、平台,做流量引导) 持续更新,欢迎关注。

npm的使用,为什么要用

标题:使用npm管理前端项目依赖 介绍: 在现代前端开发中,项目往往会依赖大量的第三方库和工具。而npm(Node Package Manager)作为JavaScript生态系统中最流行的包管理工具,提供了便捷的方式来管理和安装这些…

C语言第三十二弹---打印整数二进制的奇数位和偶数位

使用C语言打印整数二进制的奇数位和偶数位。 思路:分别实现奇数位和偶数位,那么二进制只有0 和 1 那么如何判断一个数的二进制位是0还是1呢?那我们就可以使用位操作符&与1比较,都是1证明该二进制位是1,为0证明该二进制位是0…

2016年五一杯数学建模C题二孩政策问题解题全过程文档及程序

2016年五一杯数学建模 C题 二孩政策问题 原题再现 多年来实施的严、紧计划生育政策对控制人口增长起到关键作用。在优生优育政策的指引下,我国人口质量显著提高,但也带来了不利影响,生育率偏低、男女比例失衡、人口老龄化情况严重等问题。2…

BetaFlight模块设计之三十六:SoftSerial

BetaFlight模块设计之三十六:SoftSerial 1. 源由2. API接口2.1 openSoftSerial2.2 onSerialRxPinChange2.3 onSerialTimerOverflow2.4 processTxState2.5 processRxState 3. 辅助函数3.1 applyChangedBits3.2 extractAndStoreRxByte3.3 prepareForNextRxByte 4. 总结…

老师组织课外活动的好处有哪些

亲爱的小伙伴们,不知道你们有没有注意到,老师除了在课堂上教学之外,还会在课外组织各种各样的活动呢?这些活动不仅好玩,而且对我们有很多好处哦!今天我就来给大家分享一下老师组织课外活动的好处吧&#xf…

geemap学习笔记014:加载本地的tif文件

前言 Colab中似乎没法直接加载云盘中的数据,但是可以先上传到GEE中的assets中,再加载本地的数据。下面是以这个数据为例进行展示。 1 上传数据 首先将本地的tif数据上传到Asset中,得到独一的Image ID。 2 加载数据 使用ee.Image加载数据 …

你听说过彩虹猫病毒吗?

你听说过彩虹猫病毒吗?虽然名字听起来很可爱,但他的威力可一点不逊于熊猫烧香,我们就来看看彩虹猫的运行过程吧。当病毒运行后,首先,他会警告你“你的电脑将被杀死并且不能再次启动,请最后再看他一眼吧”&a…