您当前的位置: 首页 > 

顺其自然~

暂无认证

  • 0浏览

    0关注

    1317博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

UTF-8中Bom和无 Bom区别

顺其自然~ 发布时间:2022-06-01 11:03:31 ,浏览量:0

参考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 BFUTF-16(BE)FE FFUTF-16(LE)FF FEUTF-32(BE)00 00 FE FFUTF-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 - 知乎

关注
打赏
1662339380
查看更多评论
立即登录/注册

微信扫码登录

0.0390s