我的 java 文件中有硬编码的 UTF-8 字符串文字。Eclipse 正确地构建了这个应用程序,因此生成的类文件包含 UTF-8 格式的那些字符串。但是如果使用 ant build.xml,生成的类文件会包含编码不正确的字符串。
我已经尝试将 encoding="UTF-8" 添加到 javac 任务,但没有成功。
如何修复?
ps 我知道在源文件中硬编码字符串文字是非常糟糕的做法,但这是我需要它的情况,所以请不要建议将它提取到资源包中。
任何帮助是极大的赞赏
正确的方法是
<javac ... encoding="UTF-8" ... />
如果生成的类文件中的字符串编码不正确,这意味着您的源编码可能不是 UTF-8,或者这些文件是由其他javac
任务编译的,而不是您修改的那个。
编码必须与文件的编码相匹配。您对 utf-8 的猜测可能不正确。请检查其他合适的编码名称,例如 iso-8859-1。
这实际上不是原始问题的答案,但我不希望这个问题没有答案。也许版主会决定删除它。反正。
看起来这是使用 ant、jdk、windows 的特定组合时的某种错误。我挖得很深,无法以正常的方式解决这个问题。
所以我决定将字符串外部化到属性文件,这无论如何都是更好的做法......
通常 Mikhail Vladimirov 建议的解决方案应该可以正常工作,但这次不行。