我在java文件中硬编码了UTF-8字符串文字。Eclipse正确地构建了这个应用程序,所以生成的类文件包含UTF-8格式的字符串。但是,如果使用ant build.xml,则生成的类文件包含编码不正确的字符串。
我已经尝试将encoding="UTF-8"添加到javac任务中,但没有成功。
如何修复?
p.s.我知道在源文件中硬编码字符串文字是一种非常糟糕的做法,但当我需要它时,就会出现这种情况,所以请不要建议将它提取到资源包中。
非常感谢您的任何帮助
是正确的方法
<javac ... encoding="UTF-8" ... />
如果在生成的类文件中,字符串的编码不正确,这意味着您的源编码可能不是UTF-8,或者这些文件是由其他javac
任务编译的,而不是您修改的那个任务。
编码必须与文件的编码匹配。你对utf-8的猜测可能不对。请检查其他合适的编码名称,如iso-8859-1。
请在How do I set-Dfile.encoding in ant';s build.xml?
这实际上并不是对原始问题的回答,但我不希望这个问题没有答案。也许主持人会决定删除它。不管怎样。
在使用ant、jdk和windows的特定组合时,这似乎是某种错误。我挖得很深,没能以正常的方式解决这个问题。
所以我决定将字符串外部化为属性文件,这无论如何都是更好的做法。。。
通常米哈伊尔·弗拉迪米罗夫提出的解决方案应该很好,但这次不行。