java - 使用 UTF-16 编码和 BOM 在 Ant 中编写文本文件

标签 java encoding ant byte-order-mark

我需要在我的 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 taskfilterchain强制执行 DOS 行结尾。 UnicodeLittle encoding在输出中包含 BOM,而 UTF-16LE 不包含。

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

<echo ... >
text
</echo>

鉴于

<echo ... >text</echo>

不包含换行符。)

关于java - 使用 UTF-16 编码和 BOM 在 Ant 中编写文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6860775/

相关文章:

基于条件的 Ant 调用

java - 如何修复返回额外的零

java - 如何调度JSP页面?

java - 对 Closable 对象正确使用 close() 和 = null

c++ - 如何使用 Visual C++ 将 UTF-8 编码数据存储到 sqlite3

java - 从 Facebook 的 JSON 响应中获取奇怪的字符

macos - 编译 Play !预装 "ant"的 Mac OS Leopard 框架

java - 找不到单元测试的 'annotation declaring class'

java - Java 中的 "unmappable character for encoding"警告

windows - 什么可能导致错误消息 'Target "1"does not exist in the project "xxx”。在 Windows 上运行 Ant?