zoukankan      html  css  js  c++  java
  • 技能Get·BOM头是什么?

    阅文时长 | 0.26分钟 字数统计 | 472.8字符
    主要内容 | 1、引言&背景 2、BOM头是什么? 3、如何创建或取消BOM头? 4、如何判断文件是否包含BOM头? 5、声明与参考资料
    『技能Get·BOM头是什么?』
    编写人 | SCscHero 编写时间 | 2021/3/13 PM7:38
    文章类型 | 系列 完成度 | 待完善
    座右铭 每一个伟大的事业,都有一个微不足道的开始。

    一、引言&背景   完成度:100%

    a) 研究了什么问题?

    1. BOM头是什么?
    2. 如何创建或取消BOM头?
    3. 如何判断文件是否包含BOM头?

    b) 哪些情况需要了解?

    1. 强化基础知识,基本概念。
    2. 使用PHP等语言没有忽略BOM头的语言。

    二、BOM头是什么?   完成度:100%

    BOM 是用来判断文本文件是哪一种Unicode编码的标记,其本身是一个Unicode字符("\uFEFF"),位于文本文件头部。在不同的Unicode编码中,对应的bom的二进制字节如下:

    EF BB BF UTF-8
    FF FE UTF-16 aka UCS-2, little endian
    FE FF UTF-16 aka UCS-2, big endian
    00 00 FF FE UTF-32 aka UCS-4, little endian
    00 00 FE FF UTF-32 aka UCS-4, big-endian
    

    三、如何创建或取消BOM头?   完成度:100%

    • 创建,记事本打开,另存为带BOM的文件。如图,为创建带有BOM的-UTF-8文件。
    • 取消,记事本打开,另存为不带BOM的文件。

    四、如何判断文件是否包含BOM头?   完成度:100%

    根据BOM头的特性,文件的开头使用的特定的字节进行判断。以下是NodeJS判断BOM头的示例。

        let buf = fs.readFileSync(path);
        if (buf[0] == 0xef && buf[1] == 0xbb && buf[2] == 0xbf) {
            buf = buf.slice(3);//若是BOM头,则去除前三个字节。
        }
    

    五、声明与参考资料   完成度:100%

    原创博文,未经许可请勿转载。

    如有帮助,欢迎点赞、收藏、关注。如有问题,请评论留言!如需与博主联系的,直接博客私信SCscHero即可。

  • 相关阅读:
    NFS-heartbeat-drbd模拟NFS高可用
    drbd
    hearbeat
    ldap
    SVN
    Nginx负载均衡
    shell-day1
    angularJS(二):作用域$scope、控制器、过滤器
    angularJS(一):表达式、指令
    nodejs、npm、 typescript、angular-cli安装
  • 原文地址:https://www.cnblogs.com/SCscHero/p/14530144.html
Copyright © 2011-2022 走看看