2

我需要在我的 ant 项目中生成一个文件,如下所示:

FF FE 5B 00 6F 00 6C 00|65 00 64 00 62 00 5D 00 |˙ţ[ o l e d b ]
0D 00 0A 00 3B 00 20 00|45 00 76 00 65 00 72 00 |. . ;   E v e r 

重点是:

  • 从 BOM 开始
  • 行尾 0D 0A
  • UTF-16 编码

这就是我目前所拥有的:

<echo  file='${oledir}/cst.udl' append='false' encoding='UTF-16LE'>
[oledb]
;  Ever
</echo>

但是由于我使用的是 Windows,所以缺少 BOM 并且行尾不正确。

4

1 回答 1

1

这似乎对我有用,Java 1.6.0 上的 Ant 1.8.0:

<concat destfile='cst.udl' append='false' outputencoding='UnicodeLittle'>
<string>[oledb]
; Ever</string>
<filterchain>
    <fixcrlf eol="dos"/>
</filterchain>
</concat>

使用带有过滤器链的 Antconcat任务来强制执行 DOS 行结尾。编码在输出中包含 BOM,而没有。UnicodeLittleUTF-16LE

(请注意,在 echo 任务的文本中,您以换行符开始文本:

<echo ... >
text
</echo>

然而

<echo ... >text</echo>

不包含换行符。)

于 2011-07-28T18:15:55.067 回答