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即可。

  • 相关阅读:
    HDU 1874 畅通工程续(dijkstra)
    HDU 2112 HDU Today (map函数,dijkstra最短路径)
    HDU 2680 Choose the best route(dijkstra)
    HDU 2066 一个人的旅行(最短路径,dijkstra)
    关于测评机,编译器,我有些话想说
    测评机的优化问题 时间控制
    CF Round410 D. Mike and distribution
    数字三角形2 (取模)
    CF Round410 C. Mike and gcd problem
    CF Round 423 D. High Load 星图(最优最简构建)
  • 原文地址:https://www.cnblogs.com/SCscHero/p/14530144.html
Copyright © 2011-2022 走看看