当前位置: 首页 > news >正文

UTF-8中Bom和无 Bom区别

参考1:UTF-8有BOM和无BOM的区别

参考2:一个特殊的空格ZERO WIDTH NO-BREAK SPACE

参考3:计算机字符编码的历史与发展

在UCS 编码中有一个叫做 ZERO WIDTH NO-BREAK SPACE 的字符

编码是 \uFEFF,在 Linux 的 Vim 中看到是一个空白字符,没有宽度,但确实存在,且无法删除

这个特殊字符称为BOM(Byte order mark),是Unicode的字节顺序标记,有2个作用:

  1. 说明字符流属于Unicode编码,且表明了编码方式
  2. 说明了字节序:big endian 和 little endian

具体如下

编码方式BOM(十六进制)
UTF-8EF BB BF
UTF-16(BE)FE FF
UTF-16(LE)FF FE
UTF-32(BE)00 00 FE FF
UTF-32(LE)FF EE 00 00

在电脑上新建一个记事本,用 Notepad++(版本7.8.8)打开,输入汉字“严格”,然后另存为,编码格式分别为 UTF-8有Bom的和UTF-8无Bom,可以发现,保存为 UTF-8无Bom的文件大小为 6字节,而保存为UTF-8有Bom的为9字节

使用 Notepad++的插件 HEX-Editor 查看十六进制代码如下:

有Bom的

在这里插入图片描述
无 Bom 的

在这里插入图片描述
可以发现,有 Bom 的文件比 无Bom的文件多了efbbbf,即对应了UTF-8的Bom十六进制,转为二进制为 1110 1111 1011 1011 1011 1111,总计 24 位 (24bit),而 1Byte=8bit,所以就多了 3Byte 即 3 字节。

转自:一个特殊的空格ZERO WIDTH NO-BREAK SPACE - 知乎

相关文章:

  • MSVC编译器介绍
  • QT解决MSVC中文乱码问题
  • qt中的toUtf8, toLatin1, Local8bit, toUcs4
  • C++队列queue用法详解
  • C++中,new/delete和malloc/free的区别
  • C++多线程讲解
  • 高速摄像机
  • Windows使用curl发送GET、POST请求
  • curl是什么
  • 极光推送使用curl调用REST API出现测试出现{“error“:{“code“:1002,“message“:“Missing parameter“}}
  • Window系统中Hosts文件介绍
  • DNS 域名解析流程
  • av_interleaved_write_frame
  • MinGW
  • ffmpeg音视频编码入门:音频编码(pcm编码aac)
  • 【刷算法】求1+2+3+...+n
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • axios 和 cookie 的那些事
  • classpath对获取配置文件的影响
  • CSS魔法堂:Absolute Positioning就这个样
  • Java面向对象及其三大特征
  • Spring Boot MyBatis配置多种数据库
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • Vultr 教程目录
  • 动态魔术使用DBMS_SQL
  • 观察者模式实现非直接耦合
  • 将回调地狱按在地上摩擦的Promise
  • 十年未变!安全,谁之责?(下)
  • 使用权重正则化较少模型过拟合
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 在Unity中实现一个简单的消息管理器
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • # 再次尝试 连接失败_无线WiFi无法连接到网络怎么办【解决方法】
  • (07)Hive——窗口函数详解
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (10)STL算法之搜索(二) 二分查找
  • (NSDate) 时间 (time )比较
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (安卓)跳转应用市场APP详情页的方式
  • (保姆级教程)Mysql中索引、触发器、存储过程、存储函数的概念、作用,以及如何使用索引、存储过程,代码操作演示
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (十二)python网络爬虫(理论+实战)——实战:使用BeautfulSoup解析baidu热搜新闻数据
  • (四)库存超卖案例实战——优化redis分布式锁
  • (译)2019年前端性能优化清单 — 下篇
  • (转)Unity3DUnity3D在android下调试
  • **python多态
  • .Net 6.0 处理跨域的方式
  • .NET CLR Hosting 简介
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .NET Reactor简单使用教程
  • .net6解除文件上传限制。Multipart body length limit 16384 exceeded
  • .NET中winform传递参数至Url并获得返回值或文件
  • .net中应用SQL缓存(实例使用)