让Ant和Concat忽略BOM?

7
我有一个Ant构建文件,可以将我的JavaScript文件合并成一个文件并进行压缩。问题在于Visual Studio的默认编码会附加BOM到每个文件中。我该如何配置Ant以去除那些可能出现在最终合并文件中间的BOM?
我通过Google搜索发现了这个讨论,它正是我遇到的问题,但没有提供解决方案:http://marc.info/?l=ant-user&m=118598847927096
1个回答

13

Unicode的字节顺序标记代码点是U+FEFF。当连接两个文件时,这个串联命令将去除所有BOM字符:

<concat encoding="UTF-8" outputencoding="UTF-8" destfile="nobom-concat.txt">
  <filelist dir="." files="bom1.txt,bom2.txt" />
  <filterchain>
    <deletecharacters chars="&#xFEFF;" />
  </filterchain>
</concat>

这种形式的concat命令告诉任务将文件解码为UTF-8字符数据。我假设使用UTF-8,因为这通常是Java/BOM问题的发生位置。
在UTF-8中,BOM被编码为字节EF BB BF。如果您需要它出现在生成文件的开头,则可以使用后续的连接将输出文件再次以BOM作为前缀。 其他UTF编码中U+FEFF的编码值列于此处

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接