什么是BOM (byte-order mark
):
在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来标记文本文件的编码方式的。
另外unicode网站的FAQ-BOM详细介绍了BOM。
UTF-
8编码的文件中,BOM占三个字节。如果用记事本把一个文本文件另存为UTF-8编码方式的话,用UE打开这个文件,切换到十六进制编辑状态就可以看到开
头的FFFE了。这是个标识UTF-8编码文件的好办法,软件通过BOM来识别这个文件是否是UTF-8编码,很多软件还要求读入的文件必须带BOM。可
是,还是有很多软件不能识别BOM。
Java中如何除去BOM:
byte[] b=s.substring(0,2).getBytes(‘UTF-8');
if(
(Integer.toHexString(b[0] & 0xFF).equals("ef"))
&& (Integer.toHexString(b[1] & 0xFF).equals("bb"))
&& (Integer.toHexString(b[2] & 0xFF).equals("bf"))
)
s=sb.toString().substring(1, sb.toString().length());
分享到:
相关推荐
BOM(Byte Order Mark)可能会导致在某些情况下出现问题。 2. **HTTP头部**:在PHP脚本中通过`header()`函数设置响应头的`Content-Type`为`text/html; charset=utf-8`,这样浏览器就会知道页面的编码是UTF-8。 3. ...
- 需要注意的是,如果HTML文件是从其他编码转换为UTF-8的,可能会存在BOM(Byte Order Mark)标记。BOM可能导致浏览器解析中文时出现乱码,可以通过Dreamweaver或EditPlus等工具删除BOM。 2. PHP页面转UTF-8编码...
将文件从其他编码格式转换为UTF-8时,可能会在文件开头自动生成一个BOM(Byte Order Mark)标记。BOM标记可能导致浏览器在显示中文时出现乱码。移除BOM标记的方法包括: - 使用Dreamweaver打开文件并重新保存; -...
3. BOM问题:BOM(Byte Order Mark)可能导致乱码。使用Dreamweaver或EditPlus等工具去除BOM。 4. Web服务器配置:Apache需在配置文件中设置`charset=utf-8`,Nginx则修改`nginx.conf`中的`charset`为`utf-8`。 二...
网站开发过程中,尤其是在进行国际化的过程中,常常会遇到UTF-8编码相关的乱码问题。这些问题主要集中在以下几个方面: 一、HTML页面转UTF-8编码问题 1. 首先,需要在HTML文档的部分,标签之前添加标签来声明编码:...
- 文件编码格式设为UTF-8,注意UTF-8文件可能包含BOM(Byte Order Mark),这在某些情况下(如使用session)会导致问题。可以使用支持去除BOM的编辑器如EditPlus进行文件保存,并选择去除BOM选项。 ##### 2. 字符...
在IT行业中,BOM(Byte Order Mark)是一个重要的概念,特别是在处理Unicode文本文件时。BOM是用来标识文本文件字符编码顺序的特殊字符。在标题"BOM.rar_BOM_bom.rar_visual c"中,我们可以推断这是一个与Visual C++...
- 文件保存为UTF-8格式时,注意去除BOM(Byte Order Mark)。BOM可能会导致使用session时出现问题。推荐使用EditPlus等编辑器保存,并在工具->参数选择->文件->UTF-8签名中选择“总是删除”,以确保去除BOM信息。 ...
注意,使用某些编辑器(如Notepad++)保存时,默认可能会添加BOM(Byte Order Mark),这可能导致使用session时出现问题。可以使用EditPlus等工具来去除BOM。 ##### 2. PHP与MySQL的数据交互 为了确保PHP与MySQL...
在处理文本数据时,尤其是从不同的系统或编辑器导出的文本文件,我们可能会遇到一个问题,那就是文件可能包含UTF-8编码的字节顺序标记(Byte Order Mark,简称BOM)。BOM通常用于UTF-16和UTF-32编码的文件中来标识...
- **知识点**: BOM(Byte Order Mark)标记是UTF-8编码特有的一个问题,它可能会影响页面的正常显示。 - **解决方法**: - 使用Dreamweaver打开文件并重新保存即可去除BOM。 - 或者使用EditPlus,在菜单“首选项...
3. **BOM标签问题**:转换编码时可能会在文件开头生成一个不可见的BOM(Byte Order Mark)标记。BOM标记可能导致浏览器解析中文字符时出现问题。可以通过以下几种方式移除BOM标记: - 使用Dreamweaver打开文件并...
需要注意的是,使用utf-8编码时,可能会出现BOM(Byte Order Mark)问题,可以使用editplus工具来保存文件,选择“总是删除”BOM信息。 此外,PHP本身不是Unicode的,所以需要使用mb_substr函数代替substr函数,...
在构建多语言、国际化的网站时,编码是一个关键问题,特别是从GBK或GB2312等简体中文编码向UTF-8转换时。本文主要总结了PHP页面和MySQL数据库在转换为UTF-8编码时可能遇到的问题及解决方法。 首先,PHP页面的编码...
需要注意的是,当保存为UTF-8时,可能会包含一个BOM(Byte Order Mark)标记,这可能会导致使用session时出现问题。为了避免这种情况,可以使用EditPlus这样的编辑器,在保存时选择“总是删除”UTF-8签名选项。 ###...
2. **BOM头**:某些UTF-8编码的文件可能存在Byte Order Mark (BOM),即使文件看起来是空的,BOM也会被当作输出,导致错误。 3. **PHP配置**:PHP配置中的output_buffering设置不当也可能导致此问题。 4. **错误报告*...
3. HTML文件BOM问题:有些工具在转换文件编码时,会在文件开头添加BOM(Byte Order Mark)。BOM会导致浏览器解析时出现乱码。可通过Dreamweaver或EditPlus等编辑器去除BOM。 二、WEB服务器UTF-8编码配置 如果按照...
- **添加BOM**:`\xEF\xBB\xBF`是UTF-8编码的BOM(Byte Order Mark),通常出现在UTF-8文件的开头,用来标记文件的编码格式。这里将其添加到字符串的开头。 - **`fputs()`**:将转换后的字符串写入文件。 - **`...
如果选择UTF-8编码,相应地将编码改为UTF-8,并去除文件开头的BOM(Byte Order Mark)以避免PHP session问题。可以使用EditPlus或其他编辑器进行无BOM保存。 2. **PHP与MySQL的数据交互**: - MySQL数据库的默认...