Ant替换任务会破坏UTF-8文件中的符号

tsd*_*sds 1 java ant encoding utf-8

我有以下蚂蚁任务:

<target name="test">
    <replace file="test.txt" token="smth" value="anything"/>        
</target>
Run Code Online (Sandbox Code Playgroud)

test.txt是UTF-8编码的.问题是,当我运行这个任务时,
它会破坏一些UTF-8符号(只有少数符号,而不是全部符号).
我试过使用ant -Dfile.encoding=UTF-8 -buildfile=build.xml,
并指定了build.xml编码<?xml version="1.0" encoding="UTF-8">,
但问题仍然存在.

如何使用UTF编码的文件使我的Ant任务正常工作?

Jon*_*eet 8

替换任务文档中,在属性列表中:

属性:encoding
说明:替换操作的文件的编码.
默认值:否 - 默认为默认JVM编码

所以它使用平台默认编码.如果您希望它使用UTF-8,只需将您的呼叫更改为:

    <replace file="test.txt" token="smth" value="anything" 
             encoding="UTF-8" />        
Run Code Online (Sandbox Code Playgroud)

  • @tsds:然后它可能*不是*真正的UTF-8.该文件来自何处,您如何检测此损坏?您能举例说明*binary*数据方面的变化吗?(在十六进制编辑器中之前和之后打开文件.) (3认同)