我需要在我的 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 丢失并且行尾不正确。
最佳答案
这似乎对我有用,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>
使用 Ant concat
task用filterchain强制执行 DOS 行结尾。
UnicodeLittle
encoding在输出中包含 BOM,而 UTF-16LE
不包含。
(请注意,在回显任务的文本中,您以换行符开始文本:
<echo ... >
text
</echo>
鉴于
<echo ... >text</echo>
不包含换行符。)
关于java - 使用 UTF-16 编码和 BOM 在 Ant 中编写文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6860775/