0

我的 java 文件中有硬编码的 UTF-8 字符串文字。Eclipse 正确地构建了这个应用程序,因此生成的类文件包含 UTF-8 格式的那些字符串。但是如果使用 ant build.xml,生成的类文件会包含编码不正确的字符串。

我已经尝试将 encoding="UTF-8" 添加到 javac 任务,但没有成功。

如何修复?

ps 我知道在源文件中硬编码字符串文字是非常糟糕的做法,但这是我需要它的情况,所以请不要建议将它提取到资源包中。

任何帮助是极大的赞赏

4

3 回答 3

1

正确的方法是

<javac ... encoding="UTF-8" ... />

如果生成的类文件中的字符串编码不正确,这意味着您的源编码可能不是 UTF-8,或者这些文件是由其他javac任务编译的,而不是您修改的那个。

于 2013-02-10T06:19:44.917 回答
0

编码必须与文件的编码相匹配。您对 utf-8 的猜测可能不正确。请检查其他合适的编码名称,例如 iso-8859-1。

请查看如何在 ant 的 build.xml 中设置 -Dfile.encoding 中的投票答案?

于 2013-02-10T08:49:28.857 回答
0

这实际上不是原始问题的答案,但我不希望这个问题没有答案。也许版主会决定删除它。反正。

看起来这是使用 ant、jdk、windows 的特定组合时的某种错误。我挖得很深,无法以正常的方式解决这个问题。

所以我决定将字符串外部化到属性文件,这无论如何都是更好的做法......

通常 Mikhail Vladimirov 建议的解决方案应该可以正常工作,但这次不行。

于 2013-04-22T20:05:42.960 回答