我的java文件中有UTF-8字符串文字硬编码。 Eclipse正确构建此应用程序,因此生成的类文件包含UTF-8中的字符串。 但是如果使用ant build.xml,则生成的类文件包含编码不正确的字符串。
我已经尝试将encoding =“UTF-8”添加到javac任务中,但没有成功。
如何解决?
P.S。我知道在源文件中对字符串文字进行硬编码是非常糟糕的做法,但这种情况在我需要它的时候,所以请不要建议将它提取到资源包中。
非常感谢任何帮助
答案 0 :(得分:1)
正确的方法是
<javac ... encoding="UTF-8" ... />
如果在结果类文件中字符串的编码不正确,则意味着您的源编码可能不是UTF-8,或者这些文件是由其他javac
任务编译的,而不是您修改过的。{/ p>
答案 1 :(得分:0)
编码必须与文件的编码匹配。你对utf-8的猜测可能不正确。请检查其他suitable encoding names,如iso-8859-1。
中查看已提交的答案答案 2 :(得分:0)
这实际上不是原始问题的答案,但我不希望这个问题没有答案。也许主持人会决定删除它。反正。
使用ant,jdk,windows的特定组合时,这似乎是某种错误。 我挖的很深,并且无法以正常的方式解决这个问题。
所以我决定将字符串外部化为属性文件,这无论如何都是更好的做法......
正常情况下,Mikhail Vladimirov建议的解决方案应该可以正常工作,但不是这次。