`

文件头出现的BOM问题

 
阅读更多

问题描述:在使用EditPlus等文本编辑工具,在windows下修改编码格式为UTF-8的文档时,会在文件的开头阐产生<feff>的字符。

 

问题影响:用IE浏览页面时,顶部会出现一行空白,查看页面的DOM结构,会发现其中的<link><script>标签会被解析到<body>标签下,在IE下,<meta>标签页会被解析到<body>标签下。


问题原因:在Windows标准下的UTF-8编码文档,是以<feff>开头来标识的,成为BOM(Byte Order Mark,字节序标记)。
文档摘录:
Q: What is a BOM?
A: A byte order mark (BOM) consists of the character code U+FEFF at the beginning of a data stream, where it can be used as a signature defining the byte order and encoding form, primarily of unmarked plaintext files. Under some higher level protocols, use of a BOM may be mandatory (or prohibited) in the Unicode data stream defined in that protocol.


解决方案:
配置EditPlus,删除BOM:“工具->首选项->文件->UTF-8标识->总是删除签名”,对应的英文版EditPlus路径为“Tools->Preferences->Files->UTF-8 signature->Always remove signature”
改用其他编辑工具,推荐VIM
转换为ASCII格式

 

分享到:
评论

相关推荐

    去除BOM文件头工具

    标题"去除BOM文件头工具"指的是一个专门设计用来处理这个问题的小型实用程序,它可以帮助用户批量删除UTF-8文件的BOM头。BOM头虽然对解析UTF-8编码的文本文件至关重要,但在某些情况下,如代码编辑器或版本控制系统...

    什么是BOM头?如何去除文件中的BOM头

    了解BOM头的含义和去除方法,对于处理UTF-8编码的文本文件至关重要,尤其是在遇到兼容性问题或编程中遇到异常时。通过使用特定的文本编辑器或编写针对性的代码,我们可以轻松地移除文件中的BOM头,确保文件以正确的...

    java去除文件头bom信息

    去除文件中的BOM头信息. 一些文档工具可以打开再保存为无bom格式,但文件太多就很费力,此工具类可以直接运行,直接输入你要修改的文件夹路径即可,可自由调整文件夹深度,进行子级文件夹读取

    C#获取去除文件bom头后的内容

    在编程领域,尤其是在处理文本文件时,BOM(Byte Order Mark)是一个常见的概念,它用于标识文件的字符编码。...了解如何在C#中正确地处理UTF-8文件的BOM头,可以避免很多不必要的编码问题,提高程序的兼容性和稳定性。

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

    在C#编程中,有时我们需要在写入UTF-8文件时添加这个BOM头,以确保其他程序或系统能正确识别文件的编码。 在C#中,我们通常使用`System.IO.StreamWriter`类来写入文本文件。默认情况下,`StreamWriter`创建的UTF-8...

    java处理BOM头的XML

    当XML文件以UTF-16编码并包含BOM头时,DOM4J在解析过程中可能会遇到问题,因为DOM4J默认并不期望XML文档以这种方式开始。这可能导致解析异常,例如`org.dom4j.DocumentException: Incorrect byte order mark (BOM) ...

    什么是BOM头,如何去掉BOM头.zip

    1. **显示问题**:在某些文本编辑器或浏览器中,BOM头可能会被显示为不可见的特殊字符,导致文件或网页的开头出现空格或乱码。 2. **解析问题**:有些编程语言或工具不支持或者不识别BOM头,可能导致解析错误,例如...

    批量去除 bom 工具

    在IntelliJ IDEA(简称IDEA)这样的集成开发环境中,如果Java源代码文件带有BOM头,可能会导致编译错误或者出现解析异常,影响正常的开发流程。因此,开发者需要找到一种有效的方式来移除这些不必要的BOM头。 "批量...

    java去掉txt文本的bom头信息

    在Java编程中,处理文本文件时,我们可能会遇到BOM(Byte Order Mark)头信息的问题。BOM是Unicode编码格式中的一个特殊字符,用于标识文件的编码类型,常见于UTF-8、UTF-16和UTF-32等格式。在某些情况下,如读取或...

    解决项目中html去除BOM问题

    在Web开发中,有时会遇到因文件编码问题导致的页面显示异常,其中一种常见的问题是文件头部存在BOM(Byte Order Mark)标记,这会导致HTML页面出现乱码或者解析错误。本文将详细介绍如何通过一个简单的PHP脚本解决...

    去bom头工具

    例如,一些旧版的脚本语言(如PHP)在读取带有BOM头的文件时可能会出现意外的行为,导致程序出错或者输出异常。 "去BOM头工具"通过自动化处理,可以极大地节省开发者手动查找并删除这些BOM头的时间,提高工作效率。...

    Java解决UTF-8的BOM问题

    `UnicodeInputStream`是一个过滤输入流,它的主要任务是检测并移除文件头中的BOM标志。`UnicodeReader`则是在`BufferedReader`基础上扩展的,用于处理不同类型的Unicode编码,包括那些带有BOM的编码。 在`...

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

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

    php查找当前目录下所有带有bom的文件

    然而,有些编辑器会在保存UTF-8文件时默认添加BOM,这可能导致在不支持BOM的程序中出现兼容性问题。 3. **文件操作**:在PHP中,我们可以使用如`scandir()`、`opendir()`、`readdir()`、`closedir()`等函数来遍历...

    PHP删除bom头方法实例

    虽然大多数现代编辑器能够正确处理BOM头,但在某些情况下,例如在PHP中包含或处理这些文件时,BOM头可能会引起错误,比如乱码、预定义变量未定义等问题。 本文将详细讨论如何使用PHP编写脚本来删除指定文件夹下所有...

    java获取文件编码(判断有无BOM)

    文件编码决定了字符集的表示方式,而BOM(Byte Order Mark)则是一种特殊的Unicode标记,用于标识文件的编码类型。本文将详细介绍如何在Java中获取文件的编码并判断文件是否带有BOM。 首先,让我们了解一下什么是...

    去除bom头小工具,单个可执行文件,可按文件夹批量替换,支持自定义文件类型

    这是良好的数据管理习惯,确保即使出现问题,也能轻松恢复到原始状态。 "使用方法.txt"文件很可能是包含了关于如何操作这款工具的详细指南。通常,这样的文本文件会解释如何启动程序,如何设置文件夹和文件类型,...

    php清除BOM头

    在UTF-8编码中,BOM头由三个字节(0xEF, 0xBB, 0xBF)组成,它在文件的最开始位置出现。虽然这个标记对于大多数程序是透明的,但在某些情况下,比如在浏览器中直接输出含有BOM头的PHP脚本时,可能会导致预想不到的...

    UTF-8去BOM头工具

    这个工具整合了之前的去BOM工具和所需的DLL(动态链接库)文件,使得用户可以方便地处理含有BOM头的UTF-8文件。DLL文件通常包含了一组可供其他程序调用的函数或服务,这里可能是为了实现去BOM功能的底层逻辑。 使用...

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

    选择要遍历的文件夹,输入相应的文件格式,程序会遍历此文件夹下所有相应格式文件,包括子文件夹下的文件删除其BOM头 勾选ANSI转为UTF-8,则会将相应格式但编码为GB2312,GBK,GB18030的文件转为无BOM的UTF-8文件 请...

Global site tag (gtag.js) - Google Analytics