`
ya916
  • 浏览: 2875 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

字符编码之 BOM(Byte Order Mark)

阅读更多
BOM 标示叫 “ZERO WIDTH NO-BREAK SPACE” 即没有宽度的空格符,本质上是 null值,但是不同与编程语言中的 null.

BOM, unicode 字符标识, 常被用来标识文件编码(UTF-8/16/32), 十进制编码为“65279”. 通常放在文件开头, 用来标记多字节编码文件的编码类型和字节顺序(big/little Endian).

对于UTF-8/16/32而言,它们名字中的8/16/32指的是编码单位是多少位的,也就是说,它们的编码单位分别是8/16/32位,
换算成字节就是1/2/4字节,如果是多字节,就要牵扯到字节序,UTF-8以单字节为编码单位,所以不存在字节序。


对于UTF-8来说,BOM标记的有无并不是必须的,是可选的,因为UTF8字节没有顺序,不需要标记.
也就是说一个UTF-8文件可能有BOM,也可能没有BOM.

windows上面的notepad等程序在打开文件的时候(unicode文件)会自动添加 EF BB BF 三个字节(BOM)
然而这个只是微软暗自作的标记, 其它平台上不一定会对UTF-8文本文件做个这样的标记。
微软的一些软件会做这种检测,但有些软件不做这种检测, 而把它当作正常字符处理。(乱码问题产生了)

引用
UTF-8 BOM   [ EF BB BF ]

UTF-16  BOM  [ FF FE ]

UTF-16  BE BOM [ FE FF ]

UTF-32  BOM  [ FF FE 00 00 ]

UTF-32 BE BOM [ 00 00 FE FF ]
0
1
分享到:
评论

相关推荐

    php UTF-8、Unicode和BOM问题

    UTF-8签名(UTF-8 signature)也叫做BOM(Byte Order Mark),是UTF编码方案里用于标识编码的标准标记。BOM,是UTF编码方案里用于标识编码的标准标记,在UTF-16里本来是FF FE,变成UTF-8就成了EF BB BF。这个标记是...

    UTF-8 编码中BOM的检测与删除

    所谓BOM,全称是Byte Order Mark,它是一个Unicode字符,通常出现在文本的开头,用来标识字节序(Big/Little Endian),除此以外还可以标识编码(UTF-8/16/32),如果出现在文本中间,则解释为zero width no-break ...

    PHP 下载文件时如何自动添加bom头及解释BOM头和去掉bom头的方法

    在Windows下用记事本之类的程序将文本文件保存为UTF-8格式时,记事本会在文件头前面加上几个不可见的字符(EF BB BF),就是所谓的BOM(Byte order Mark)。 在utf-8编码文件中BOM在文件头部,占用三个字节,用来...

    Node.js文本文件BOM头的去除方法

    字节顺序标记(byte order mark),是位于码点U+FEFF的统一码字符的名称。当以UTF-16或UTF-32来将UCS/统一码字符所组成的字符串编码时,这个字符被用来标示其字节序。它常被用来当做标示文件是以UTF-8、UTF-16或UTF-...

    PHP 下载文件时自动添加bom头的方法实例

    在Windows下用记事本之类的程序将文本文件保存为UTF-8格式时,记事本会在文件头前面加上几个不可见的字符(EF BB BF),就是所谓的BOM(Byte order Mark)。不仅限于 记事本保存的文件,只要在文件的开口包含了EF BB...

    php写入txt乱码的解决方法

    可能你会先尝试从编码入手尝试解决,但最终的...在Windows下用记事本之类的程序将文本文件保存为UTF-8格式时,记事本会在文件头前面加上几个不可见的字符(EF BB BF),就是所谓的BOM(Byte order Mark)。 不仅限于

    WordPress源代码中文乱码的解决方法

    查看相关教程,UTF-8和UTF-8 + BOM有所区别,于是把function.php编码改为后者。问题解决。 UFT-8 与UTF-8 BOM 的区别:(收集过来,我还没看) UTF-8以字节为编码...BOM是Byte order Mark。BOM是一个有点小聪明的想

    php session_start()关于Cannot send session cache limiter – headers already sent错误解决方法

    后来在网上搜索一些文件,给的解释是:UTF8文件的BOM(Byte Order Mark)标志,在保存的时候会自动存入! 不管它是干嘛的,现在的目的就是把它去掉,我总结的方法有下面三种: 1、 在Linux下打开,去掉后再保存 2、 ...

    Editplus 3[1].0

    (技巧提示:空行仅包括空格符、制表符、回车符,且必须以这三个符号之一作为一行的开头,并且以回车符结尾,查找空行的关键是构造代表空行的正则表达式)。 直接在"查找"中输入正则表达式“^[ \t]*\n”,注意\t前有...

    EditPlus 2整理信箱的工具

    (技巧提示:空行仅包括空格符、制表符、回车符,且必须以这三个符号之一作为一行的开头,并且以回车符结尾,查找空行的关键是构造代表空行的正则表达式)。 直接在"查找"中输入正则表达式“^[ \t]*\n”,注意\t前有...

Global site tag (gtag.js) - Google Analytics