最近,用D写了些文件操作的代码.发现,只能用UltraEdit编辑的文件,才能在std.file中正常使用.如果使用记事本,编辑下,就立刻无法打开了.而这两者有什么不同呢? 并且,前几天,保存一共文件的时候,发现std.file总要在文件的开头加入写不能识别的字符. 这两件事情一联系,感觉到在std.file后隐藏的东西还有很多.
分析了一下文件的二进制格式,发现了问题:
Unicode总会在开头加入FF FE或者是FF FE FF FE, ANSI文件呢:什么也没有.记事本默认的文件就是ANSI格式的.这也是记事本文件,在std.file中打开不正常的原因了.
这就是所谓的BOM问题了.
UTF-8 编码的文件可以分为无 BOM 和 BOM 两种格式。BOM:即 Byte Order Mark .是为了方便编辑器识别文件的一个简单方法,在识别UTF16,UTF32文件都要使用.而UTF8则是可有可无.
再看看std.file,std.stream,这里完全支持多种BOM格式.如此,就好办了,在每次读取文件时,判断是有正确的BOM,有就按BOM指定的格式进行读取每个字符.
总结下:
1.使用EndianStream,读取BOM,来对UTF格式读取.
2.使用任何编辑器,都在保存中文文件时,使用UTF8格式,甚至,仅仅使用UTF8格式.
分享到:
相关推荐
在某些情况下,如您描述的那样,批量移除文件的BOM格式变得必要。 要理解这个问题,我们首先需要知道BOM在不同编码中的作用。在UTF-16和UTF-32中,BOM是必需的,因为它帮助确定字节顺序,而在UTF-8中,BOM是可选的...
通常,BOM头是可选的,对于大多数现代文本编辑器和解析器来说,它们能够识别没有BOM头的UTF-8文件。但是一些较旧或者设计不完善的程序可能无法处理这个额外的字节序列,从而导致显示异常,如出现乱码、空格或者无法...
在编程领域,BOM(Byte Order Mark)是一个特殊字符序列,用于标识文本文件的编码格式。在UTF-8编码中,BOM是一个由三个字节组成的序列:0xEF, 0xBB, 0xBF,它位于文件的开头,用来表明该文件采用的是UTF-8编码。在...
BOM是UTF-8、UTF-16和UTF-32等编码格式中的一个可选标记,用于告知解析器文件的编码类型。例如,UTF-8的BOM是三个字节(0xEF, 0xBB, 0xBF),而UTF-16LE和UTF-16BE的BOM分别是两个字节(0xFF, 0xFE)和(0xFE, 0xFF...
批量 将utf-8 编码格式的文件 加bom
BOM的主要目的是帮助解析器确定文件的字节顺序,但对于像Java这样的语言,BOM头可能会引起编译错误,因为它们不期望源代码文件的开头有额外的字符。 在IntelliJ IDEA(简称IDEA)这样的集成开发环境中,如果Java源...
我们用Exce建立一个Excle表格,做一个xx.xlt的2003的模版文件,取文件名为:AltiumDesiger PCB BOM Template.xlt。 接下来我们输入自己需要保存的参数。 这里我自己需要的内容如下: ② 表格移动 将Altium...
7. **输出结果**:脚本可能通过HTML格式将找到的带有BOM的文件列表呈现给用户,或者将结果写入日志文件,以便开发者进一步分析和处理。 综上所述,这个“find_bom.php”脚本提供了一个方便的工具,用于检测和识别...
**什么是BOM头** BOM(Byte Order Mark)头,也称为字节顺序标记,是Unicode编码格式的...通过使用特定的文本编辑器或编写针对性的代码,我们可以轻松地移除文件中的BOM头,确保文件以正确的无BOM格式进行读取和处理。
- 打开BOM插件,配置元件筛选规则和输出格式,生成BOM文件。确保所有元件信息完整且无误。 - 检查生成的坐标文件和BOM文件,与设计图对比,确认没有遗漏或错误。 - 将这些文件提交给SMT生产线,进行批量生产。 5...
如何解决BOM:先放在服务器可执行目录下,使用 浏览器http://服务器ip/存放路径/bom.php来 访问,填写实际路径执行后可得到存在有BOM的PHP文件,然后再用notepad++打开,在菜单选“格式”->“转为UTF-8无BOM..”即可. ...
让我们详细探讨一下BOM和坐标文件以及它们在电路板设计中的作用。 首先,BOM,即物料清单,是一个详列了产品所需所有组件及其数量的列表。在电子设计中,BOM通常包括每个元器件的型号、供应商信息、数量以及在电路...
UTF-8编码是一种广泛使用...批量去除BOM工具的存在,为开发者提供了一种便捷的解决方案,帮助他们处理那些因为BOM引发的问题,确保文件的兼容性和正确性。在处理大量UTF-8编码文件时,这样的工具无疑是一个得力的助手。
BOM文件推荐使用“.csv”(逗号分隔值)格式,但同时也支持“.xls”(Excel电子表格格式)和“.xlsx”(Excel电子表格(Open XML)格式)。之所以推荐“.csv”格式,是因为其具有良好的文本编辑和兼容性,可以被多种...
例如,JSON格式的文件通常建议不包含BOM,以避免解析问题。 综上所述,理解和处理无头BOM的UTF-8文件是IT工作中的一项基本技能,涉及字符编码理论、编程实践以及特定工具的使用。在处理文本数据时,正确识别和处理...
描述中提到的"批量转换utf-8"意味着这个工具不仅能够去除BOM,还能进行批量的文件编码转换操作,将非UTF-8格式的文件转换为无BOM的UTF-8格式。这对于管理大量的源代码文件尤其有用,特别是在跨平台或多开发环境的...
描述中提到的博文链接指向了一个ITEYE博客文章,虽然具体内容没有给出,但我们可以推测该文章可能提供了如何批量去除UTF-8文件BOM的教程或代码示例。ITEYE是一个知名的IT技术社区,这里的技术分享往往具有很高的参考...
BOM是Unicode编码格式中的一个特殊字符,用于标识文件的编码类型,常见于UTF-8、UTF-16和UTF-32等格式。在某些情况下,如读取或合并多个文本文件时,BOM头可能会导致不必要的困扰,例如乱码或解析错误。本文将详细...
"检查BOM表的文件检查器"是一个工具,它专门用于检测和处理带有Byte Order Mark(BOM)的文件。BOM是Unicode编码格式的一个特征,用于标识文件的字符编码类型,例如UTF-8、UTF-16或UTF-32。在某些情况下,BOM可能会...
ORCAD 嘉立创SMT BOM导出格式,导出的BOM可直接支持嘉立创SMT贴片,不需要做修改。 ORCAD 嘉立创SMT BOM导出格式,导出的BOM可直接支持嘉立创SMT贴片,不需要做修改。