2013-02-10 74 views
0

我的java文件中有UTF-8字符串文字硬编码。 Eclipse正确构建此应用程序,因此生成的类文件包含UTF-8中的那些字符串。 但如果使用ant build.xml,则生成的类文件包含编码不正确的字符串。有没有办法使用蚂蚁构建UTF-8源文件

我已经尝试在javac任务中添加encoding =“UTF-8”,但没有成功。

如何修复?

p.s.我知道在源文件中使用字符串文字硬编码是非常糟糕的做法,但是当我需要它时,这是情况,因此请不要将其提取到资源包中。

任何帮助是极大的赞赏

+0

你确定你的源文件存储在UTF-8中吗? – 2013-02-10 08:53:47

+0

是的,我做了一个双重检查 – 2013-04-22 05:39:01

回答

0

这并不是真正的答案,原来的问题,但我不希望这个问题是没有答案。也许版主会决定删除它。无论如何。

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

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

米哈伊尔·弗拉基米建议通常的解决方案应该很好地工作,但这次不会。

1

正确的方法是

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

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

+0

我做到了,并仔细检查了源代码是UTF-8。它没有帮助。而且我的ant文件中只有一个javac任务,所以我不认为这是原因。 – 2013-04-22 05:37:47