【前言】
最近遇到BOM问题,这里记录总结下
【主体】
(1)介绍
BOM(Byte Order Mark),字节顺序标记,出现在文本文件头部,Unicode编码标准中用于标识文件是采用哪种格式的编码。
类似WINDOWS自带的记事本等软件,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM)。它是一串隐藏的字符,用于让记事本等编辑器识别这个文件是否以UTF-8编码。对于一般的文件,这样并不会产生什么麻烦。但对于 PHP来说,BOM是个大麻烦。
PHP并不会忽略BOM,所以在读取、包含或者引用这些文件时,会把BOM作为该文件开头正文的一部分。根据嵌入式语言的特点,这串字符将被直接执行(显示)出来。由此造成即使页面的 top padding 设置为0,也无法让整个网页紧贴浏览器顶部,因为在html一开头有这3个字符呢!
(2)拓展
隐形字符65279解释如下:
UTF-8 编码的文件可以分为无 BOM 和 BOM 两种格式。
何谓BOM?
"EF BB BF" 这三个字节就叫BOM,全称是"Byte Order Mard"。在utf8文件中常用BOM来表明这个文件是UTF-8文件,而BOM的本意是在utf16中用。
utf-8文件在php中输出的时候bom是会被输出的,所以要在php中使用utf-8,必须要是使用不带bom头的utf-8文件。
常用的文本编辑软件对utf-8文件保存的支持方式并不一样,使用的时候要特别留意
(3)解决方法:
编辑器调整为UTF8编码格式后,保存的文件前面会多出一串隐藏的字符(也即是BOM),用于编辑器识别这个文件是否是以UTF8编码。一般的文本文件会忽略这一串隐藏的字符,但对于PHP等文件会解析这一串字符,这样会导致出错。
1、editplus去BOM头的方法
编辑器调整为UTF8编码格式后,保存的文件前面会多出一串隐藏的字符(也即是BOM),用于编辑器识别这个文件是否是以UTF8编码。运行Editplus,点击工具,选择首选项,选中文件,UTF-8标识选择 总是删除签名,然后对PHP文件编辑和保存后的PHP文件就是不带BOM的了。
2、ultraedit去除bom头办法
打开文件后,另存为选项的编码格式里选择(utf-8 无bom头),确定就ok了。
3、Dreamweaver 去除bom头方法
修改>页面属性>标题/编码 中的 包括Unicode 签名(BOM)" 前面的对钩去掉即可
4、vscode 去除bom头方法
打开文件,右下角 有个 UTF-8withBom 按钮,说明文件是带Bom头的。 点击按钮后 正上方中间位置有编码选择列表, 选择UTF-8就可以啦。
这里推荐使用第3种方案,笔者亲测管用。具体链接和方案可以参考上篇博客文章哦~
.
相关推荐
在设计和制造过程中,BOM扮演着非常重要的角色,本文将对设计BOM和制造BOM进行详细的介绍,并结合 CAD、CAPP、PDM、MRPⅡ和ERP等系统进行描述。 一、基本概念 * 产品:是生产企业向用户或市场以商品形式提供的制成...
以自行车生产为例介绍bom表的组成,结合erp的说明
ERP之BOM 知识介绍 TIPTOP培训资料
因此,本文对 BOM 的定义、分类、应用进行了详细的介绍。 一、BOM 的定义 BOM 是一种物料清单,从不同的系统来看,BOM 的含义具有一定的差别。从研发人员来看,BOM 是一种产品结构的技术描述文件,它表明了产品...
本文将详细介绍一个用于SAP PP BOM批量下载的自定义工具。 #### 二、SAP PP BOM基础知识 ##### 1. BOM概述 BOM是制造行业中用来描述产品的组成结构的清单,它不仅包括物料清单,还包括制造这些产品所需的组件、...
本文档介绍了一种名为“批量BOM反查”的SAP脚本,该脚本能够实现批量反向查询物料清单的功能。相比传统的CS15事务代码,这种方法可以显著提高工作效率。 #### 关键技术点 ##### 1. 报告结构设计 报告`YPPR0043`不...
下面我们将详细介绍如何利用Allegro导出BOM。 首先,需要确保在Capture中已经存在要导入Allegro的属性。这些属性可以来自CIS数据库添加的器件,或者手动添加。在Allegro中,需要按照以下步骤进行设置: 1. 正常...
BOM 主数据介绍 BOM(Bill of Material)是生产或组装等作业的一个完整的、正式的组件结构,通俗来讲 BOM 主要包含的是生产或组装一种产品它需要哪些原材料、半成品、包装材料等物料,以及每种物料的用量等信息。 ...
#### 一、SAP BOM(Bill of Materials)概念介绍 在SAP系统中,BOM(物料清单)是一种重要的技术文档,它详细记录了一个产品(父项)由哪些零部件(子项)组成,以及这些零部件的数量、单位等信息。在制造业中,BOM...
本教程将详细介绍如何使用PADS Layout生成BOM,并探讨其分类详细的特点。 首先,理解BOM的重要性:BOM是电子产品制造的蓝图,它包含了所有组件的清单,确保制造商能够准确无误地购买和装配所需零件。在PADS Layout...
SAP 及 PM 基础介绍 ...SAP 及 PM 基础介绍中提到的知识点包括:SAP 介绍、PM 模块介绍、SAP 登陆方式及进入功能界面方法介绍、功能位置介绍、BOM 介绍、PM 模块的架构、PM 模块的主要概念、维护类型和工单类型等。
在"wan.ppt"这个文件中,可能详细介绍了Oracle BOM的概念、使用方法、实际案例以及操作步骤等内容。通过深入学习并结合实际操作,可以更全面地理解和掌握Oracle BOM的功能和价值。对于IT专业人士来说,熟悉Oracle ...
在《批输入方法导BOM教材》中,作者Allen Lee详细介绍了如何使用批输入方法在SAP系统中导入BOM数据。 首先,启动批输入操作,可以通过输入特定的事务代码,如文中提到的事务代码,进入批输入的界面。接着,设置相关...
本文将详细介绍如何使用C#语言来获取并处理去除BOM头后的文件内容。 首先,让我们理解为什么BOM头会导致乱码问题。通常,BOM头是可选的,对于大多数现代文本编辑器和解析器来说,它们能够识别没有BOM头的UTF-8文件...
本文档介绍了使用ABAP语言编写的批量导出BOM的代码实现,涵盖了物料号、物料描述、基本数量、物料单位、替代BOM、可选文本等功能。该代码使用了SAP系统的相关表和结构,例如STKO、STPO、MAST、MAKT等,来实现批量...
#### 一、U8系统与BOM概念介绍 - **U8系统**:U8是用友软件公司的一款面向中小企业的管理信息系统,涵盖了财务管理、供应链管理、生产制造等多个领域。 - **BOM(Bill of Materials)**:物料清单,是制造行业中...
BOM和DOM对象的简单介绍 在 JavaScript 中,BOM( Browser Object Model)和 DOM(Document Object Model)是两个重要的对象模型。BOM 主要关注浏览器窗口和屏幕的信息,而 DOM 则是文档对象的树形结构,从而描述了...
这次的“BOM知识培训”涵盖了多个关键点,包括BOM的基础知识、产品编码原则、PDM(Product Data Management)系统介绍以及不同行业的编码规则。 1. **BOM基础知识** bom基础知识.doc中详细介绍了BOM的基本结构和...
以下介绍几种常见的BOM准确率计算模型: **1. 月度BOM准确率计算公式** \[ \text{月度BOMA} = \sum_{i=1}^{n} K_i \times (1 - \frac{Q_i}{S_i}) \times 100\% \] - \(K_i\):不同类型的BOM根据其重要性分配的...
本文将详细介绍如何使用Java去除TXT文本文件的BOM头信息。 首先,我们需要理解BOM头的含义。BOM头是一个字节序列,用于表明文件所使用的字符编码。在UTF-8中,BOM头的字节序是EF BB BF。在UTF-16LE(小端序)中,它...