• 技能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即可。

  • 相关阅读:
    java中bean和xml相互转换
    java操作zip文件
    java内置的解压缩工具
    java操作Excel简单入门
    java开发IDEA插件入门
    java中Class.getResourceAsStream()和ClassLoader.getResourceAsStream()的区别
    java中文转拼音
    vue父子组件通信
    学会使用box-sizing布局
    webpack-dev-server 导致的 invalid host header
  • 原文地址:https://www.cnblogs.com/SCscHero/p/14530144.html
Copyright © 2020-2023  润新知