`
bcyy
  • 浏览: 1830173 次
文章分类
社区版块
存档分类
最新评论

UTF的字节序和BOM

 
阅读更多

UTF-8以字节为编码单元,没有字节序的问题。UTF-16以两个字节为编码单元,在解释一个UTF-16文本前,首先要弄清楚每个编码单元的字节序。例如Unicode编码是594EUnicode编码是4E59。如果我们收到UTF-16字节流“594E”,那么这是还是

Unicode规范中推荐的标记字节顺序的方法是BOMBOM不是“BillOfMaterial”BOM表,而是ByteOrderMarkBOM是一个有点小聪明的想法:

UCS编码中有一个叫做"ZEROWIDTHNO-BREAKSPACE"的字符,它的编码是FEFF。而FFFEUCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输字符"ZEROWIDTHNO-BREAKSPACE"

这样如果接收者收到FEFF,就表明这个字节流是Big-Endian的;如果收到FFFE,就表明这个字节流是Little-Endian的。因此字符"ZEROWIDTHNO-BREAKSPACE"又被称作BOM

UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。字符"ZEROWIDTHNO-BREAKSPACE"UTF-8编码是EFBBBF(读者可以用我们前面介绍的编码方法验证一下)。所以如果接收者收到以EF

BBBF开头的字节流,就知道这是UTF-8编码了。

Windows就是使用BOM来标记文本文件的编码方式的。

详见:http://www.blogjava.net/dreamstone/archive/2006/11/28/83936.html

分享到:
评论

相关推荐

    此文件用于快速反查php文件中的UTF8编码的文件是不是加了BOM,有则显示,无则跳过。(php源码)。

    用途:主要用于整站所有文件为utf8无bom文件,个别文件却存bom,而造成的如:Warning: Cannot modify header information - headers already sent 等的错误。 如何解决BOM:先放在服务器可执行目录下,使用 浏览器http://...

    批量去除utf-8的bom头(php版)

    UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。字符"ZERO WIDTH NO-BREAK SPACE"的UTF-8编码是EF BB BF。所以如果接收者收到以EF BB BF开头的字节流,就知道这是UTF-8编码了。 Windows就是使用BOM来...

    strip-bom, 从字符串中带 utf 8 字节顺序标记( 物料清单).zip

    strip-bom, 从字符串中带 utf 8 字节顺序标记( 物料清单) 带 bom 带 UTF-8 字节顺序标记从字符串中删除从维基百科:Unicode标准允许 UTF-8 中的BOM,但不要求它,也不推荐它的使用。 字节顺序在 UTF-8 中没有意义。...

    读取ANSI、Unicode、Unicode big endian、UTF-8、UTF8 Bom、UTF16-LE明码文件

    读取ANSI 明码文件 读取Unicode 明码文件 读取Unicode big endian 明码文件 读取UTF-8 明码文件 读取UTF8 Bom 明码文件 读取UTF16-LE 明码文件 读取UTF16-BE 明码文件 到多字节字符串 扩展类CFilePlainCode

    php UTF-8、Unicode和BOM问题

    一、介绍 UTF-8 是一种在web应用中经常使用的一种 Unicode 字符的编码方式,使用 UTF-8 的好处在于它是一种变长的编码方式,对于 ANSII 码编码长度为1个字节,这样的话在传输大量 ASCII 字符集的网页时,可以大量...

    strip-bom:从字符串中删除UTF-8字节顺序标记(BOM)

    字节顺序在UTF-8中没有意义。 安装 $ npm install strip-bom 用法 import stripBom from 'strip-bom' ; stripBom ( '\uFEFFunicorn' ) ; //=> 'unicorn' 有关的 此模块的CLI 该模块的缓冲区版本 此模块的流版本 ...

    php中隐形字符65279(utf-8的BOM头)问题

    UTF-8 编码的文件可以分为无 BOM 和 BOM 两种格式。 何谓BOM?  ”EF BB BF” 这三个字节就叫BOM,全称是”Byte Order Mard”。在utf8文件中常用BOM来表明这个文件是UTF-8文件,而BOM的本意是在utf16中用。  utf-8...

    strip-bom-cli:剥离UTF-8字节顺序标记(BOM)

    字节顺序在UTF-8中没有意义。安装 $ npm install --global strip-bom-cli用法 $ strip-bom --help Usage $ strip-bom <file> > <new> $ cat <file> | strip-bom > <new> Example $ strip-bom unicorn.txt > unicorn...

    gulp-bom:将UTF-8 BOM添加到文件

    字节顺序在UTF-8中没有意义。 Gulp会删除BOM表,因为它是无用的。 这是针对一些确实需要它的愚蠢工具。 除非确实需要,否则不要使用它。安装 $ npm install --save-dev gulp-bom用法 const gulp = require ( 'gulp'...

    字符编码:GBK、GB2312、UTF-8

    UTF-8:Unicode TransformationFormat-8bit,允许含BOM,但通常不含BOM。是用以解决国际上字符的一种多字节编码,它对英文使用8位(即一个字节),中文使用24为(三个字节)来编码。UTF-8包含全世界所有国家需要用到...

    strip-bom-buf:从缓冲区中剥离UTF-8字节顺序标记(BOM)

    字节顺序在UTF-8中没有意义。 安装 $ npm install strip-bom-buf 用法 const fs = require ( 'fs' ) ; const stripBomBuffer = require ( 'strip-bom-buf' ) ; stripBomBuffer ( fs . readFileSync ( 'unicorn....

    utf8-bom-strip:这是一个简单的代码(或函数),用于从 utf-8 文件中删除 BOM(字节顺序标记)

    UTF-8 BOM(字节顺序标记)条介绍Bomstrip 是一个非常简单的工具,它从标准输入 (stdin) 读取 UTF-8 文本,删除 BOM(字节顺序标记),然后写入标准输出 (stdout)。 这个工具是用 C 写的。如果你没有 C 编译器,或者...

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

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

    检测BOM并根据需要删除-Golang开发

    utfbom软件包utfbom实现了BOM(Unicode字节顺序标记)的检测并根据需要删除。 它还可以返回BOM表检测到的编码。 安装go get -u github.com/dimchansky utfbom软件包utfbom实现了BOM(Unicode字节顺序标记)的检测并...

    bomstrip:从编码为UTF8-BOM的文件中剥离BOM(字节顺序标记),然后以纯UTF8格式保存回去

    从编码为UTF8-BOM的文件中剥离BOM(字节顺序标记),然后以纯UTF8格式保存它们。 可以一次批量转换多个文件,甚至可以转换整个目录(包括子目录)。 安装 $ npm install -g cli-bomstrip 用法 $ bomstrip <path1> [-...

    has-bom-string:如果字符串具有字节顺序标记(BOM),则返回true

    如果字符串具有字节顺序标记(BOM),则返回true 安装 npm i has-bom-string --save 用法 有关更多用例,请参见 var hasBomString = require ( '... :从字符串/缓冲区中剥离UTF-8字节顺序标记(BOM) strip-bom-buf

    UTF-8 BOM 可能导致样式错乱的解决方法

    utf-8 是一种在web应用中经常使用的一种 unicode 字符的编码方式,使用 utf-8 的好处在于它是一种变长的编码方式,对于 ANSII 码编码长度为1个字节,这样的话在传输大量 ASCII 字符集的网页时,可以大量节约网络带宽...

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

    当以UTF-16或UTF-32来将UCS/统一码字符所组成的字符串编码时,这个字符被用来标示其字节序。它常被用来当做标示文件是以UTF-8、UTF-16或UTF-32编码的标记。 不同编码的字节顺序标记的表示: 编码 表示(十六进制) ...

    BomSweeper:从 UTF-8 文件中删除 BOM(字节顺序标记)

    从 UTF-8 文件中删除 BOM(字节顺序标记)。 写这个是因为我有一些带有 BOM 的 UTF-8 格式的 Android 项目的遗留源代码,但找不到任何软件可以在 MAC OS 上执行批处理 BOM 删除操作。 ##用法 bs.py [-h] [--type...

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

    UFT-8 与UTF-8 BOM 的区别:(收集过来,我还没看) UTF-8以字节为编码单元,没有字节序的问题。UTF-16以两个字节为编码单元,在解释一个UTF-16文本前,首先要弄清楚每个编码单元的字节序。例如“奎”的Unicode编码...

Global site tag (gtag.js) - Google Analytics