`
andrew1024
  • 浏览: 74255 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

utf-8 无bom与utf-8的区别

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

Unicode规范中推荐的标记字节顺序的方法是BOM。BOM是Byte order Mark。BOM是一个有点小聪明的想法:

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

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

UTF- 8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。字符"ZERO WIDTH NO-BREAK SPACE"的UTF-8编码是 EF BB BF(读者可以用我们前面介绍的编码方法验证一下)。所以如果接收者收到以EF BB BF开头的字节流,就知道这是UTF-8编码了。

Windows就是使用BOM来标记文本文件的编码方式的。
分享到:
评论

相关推荐

    Java解决UTF-8的BOM问题

    然而,UTF-8有一个特殊的形式,即带BOM(Byte Order Mark)的UTF-8,这个BOM在某些情况下可能会引发问题。本文将详细探讨Java中如何处理UTF-8的BOM问题。 首先,我们需要理解什么是BOM。BOM是Unicode编码中的一个...

    gb2312,utf-8,utf-8-bom等编码格式的互相转换

    本文将深入探讨几种常见的编码格式,如GB2312、UTF-8以及UTF-8-BOM,并详细讲解如何在C#中进行这些编码格式之间的转换,同时会涉及到与Stream相关的操作。 GB2312,全称为“国标汉字编码字符集”,是中国大陆广泛...

    utf-8批量bom添加删除(BomChecker)工具

    1.首先介绍一下本人应用场景,qt...3.此小工具主要针对utf-8编码文件,能够批量添加删除BOM,无识别转化ASIIC功能,添加BOM时,如果文件是utf-8(BOM),则跳过,删除亦然 4.当不选中添加删除时可用于文件数量统计。

    字符编码转换类,支持 ANSI、Unicode、Unicode big endian、UTF-8、UTF-8+Bom互相转换

    UTF-8的特殊之处在于它包含一个字节顺序标记(BOM),即UTF-8+BOM,但大多数情况下,UTF-8无BOM更常见。 在PHP中,进行字符编码转换可以使用内置函数,如`mb_convert_encoding()`,这个函数可以将字符串从一种编码...

    UTF-8去BOM头工具

    UTF-8编码是一种广泛使用的字符编码方式,尤其在互联网和软件开发中占据核心地位。它能够表示Unicode字符集中的所有字符,确保...通过这个工具,用户可以轻松地管理和维护无BOM的UTF-8文件,保证数据的准确性和兼容性。

    批量去掉UTF-8文件中BOM标示符

    然而,UTF-8编码有一种特殊的形式,即带有BOM(Byte Order Mark)的UTF-8,也被称为UTF-8 with BOM。BOM是一个特殊的字符序列,用于标识文件的编码方式,但在某些情况下,BOM可能会引起问题,例如在某些编程语言中...

    git 修改上传文件编码为utf-8-bom

    当上传文件存在中文时,修改上传文件编码为utf-8-bom

    PB字符串转XML文件,解决PB12.5创建UTF-8文件BOM问题(powerbuilder 12.5)

    解决PB创建UTF-8文件带BOM问题; 2.字段串直接生成XML文件。 由于项目需要,需要字符串转为XML文件,直接用Fileopen进行EncodingUTF8编码后,发现文件实际为UTF-8 BOM编码 问度娘发现有相同问题,但解决方式是利用...

    批量utf文件转utf8-bom

    "批量utf文件转utf8-bom"这个主题指的是将一批以UTF编码的文件转换为带有BOM(Byte Order Mark)的UTF-8编码。BOM是一个特殊的字节序列,用于标识文件的编码类型,对于UTF-8编码,BOM的字节序列为0xEF, 0xBB, 0xBF。...

    java 读取服务器上的某个文件,并解决UTF-8 BOM文件的问号问题

    这个场景中,我们面临的挑战是如何正确处理UTF-8带有BOM(Byte Order Mark)的文件,因为BOM可能会导致文件内容显示为问号或者其他乱码。下面将详细介绍如何解决这个问题。 首先,我们需要理解什么是UTF-8的BOM。...

    sql,GBK2312,UTF-8,UTF-8 无BOM,脚本字符集转换,脚本格式转换

    "sql,GBK2312,UTF-8,UTF-8 无BOM,脚本字符集转换,脚本格式转换"这个主题核心是关于如何在不同字符编码之间转换SQL脚本,以确保数据的正确性和兼容性。以下是一些相关的知识点: 1. **字符编码**:字符编码是...

    UTF-8文件去除BOM头小工具

    去除bom头小工具,工具使用方法: 选择要遍历的文件夹,输入...勾选ANSI转为UTF-8,则会将相应格式但编码为GB2312,GBK,GB18030的文件转为无BOM的UTF-8文件 请确保文件可写!使用前请做好备份,作者不承担任何法律责任

    PB9转换utf-8例子

    标题中的“PB9转换utf-8例子”指的是在PowerBuilder 9(PB9)环境下将数据从非UTF-8编码转换为UTF-8编码的一种解决方案。由于PB9本身不直接支持这种转换,开发者通常需要利用外部库或者特定的编程技巧来实现这个功能...

    utf-8 去除bom头文件

    2. **手动去除BOM**:你可以使用文本编辑器,如Notepad++或Sublime Text,打开UTF-8带BOM的文件,选择“编码”菜单,然后选择“转换为UTF-8无BOM”或类似选项。这样会保存一个新的文件,而原文件保持不变。 3. **...

    php utf-8编码去bom小工具

    BOM是UTF-8编码的一个可选特征,它在文件开头放置三个特殊的字节来标识文件的字符编码,但这可能会导致在某些编辑器或浏览器中出现不必要的字符或者乱码问题。因此,开发这个小工具是为了帮助开发者处理这个问题。 ...

    IDEA支持带BOM的UTF-8编码文件.rar

    虽然UTF-8无BOM是更常见的选择,但IDEA也允许创建带BOM的UTF-8文件。 3. **保存文件**:在保存文件时,可以通过设置选择是否添加BOM。这在与不支持BOM的系统交互时尤其有用。 4. **版本控制**:如果使用Git等版本...

    C#写入文件加上bom头,主要适用于utf8文件

    5. 最后,值得注意的是,虽然大多数现代软件都能正确识别无BOM的UTF-8文件,但有些旧的或不兼容的程序可能需要BOM来识别UTF-8编码。因此,根据目标系统的兼容性需求,你可能需要选择是否添加BOM。 通过以上步骤,你...

    易语言另类数据库读写UTF-8

    在易语言中实现另类数据库读写UTF-8,主要是为了克服原生支持的不足,提供更灵活和高效的数据存储与读取方式。 首先,我们需要了解易语言中的数据库接口。易语言提供了多种数据库操作的模块,如ODBC(Open Database...

    UTF-8文件批量去除BOM标记

    "去除BOM头小工具.exe"是一个实用程序,专门用于批量处理UTF-8编码的文件,移除文件头的BOM标记。这个工具可以极大地提高工作效率,避免手动逐个编辑文件的繁琐过程。在日常开发中,如果你遇到因为BOM导致的问题,...

Global site tag (gtag.js) - Google Analytics