得到ant concat忽略BOM的'?

时间:2010-04-30 06:37:35

标签: ant utf-8 javascript yui-compressor

我有一个ant build,它将我的javascript连接到一个文件然后压缩它。问题是Visual Studio的默认编码会将BOM附加到每个文件。如何配置ant以去除原本会出现在结果连接文件中间的BOM?

我的googl'ing透露了这个讨论,这是我遇到的确切问题,但没有提供解决方案:http://marc.info/?l=ant-user&m=118598847927096

1 个答案:

答案 0 :(得分:12)

Unicode byte order mark代码点是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的编码值here