Javac编译编码问题

Javac编译编码问题,java,javac,Java,Javac,最近,我们正在将java构建作业从serverA迁移到serverB,java源代码(包含中文字符)使用Ant()在原始serverA上编译得很好,但是,当我们将相同的代码签出到新的serverB并运行相同的Ant脚本时,出现了编码错误,即“编码GBK的不可映射字符”。(JDK版本相同) 我们不知道为什么相同的源代码和相同的Ant编码参数会有不同的编译结果 是否存在可能导致此问题的任何设置,操作系统设置 谢谢。经过一些调查 java文件确实存在GBK编码问题 在serverB上,Ant构建脚本具

最近,我们正在将java构建作业从serverA迁移到serverB,java源代码(包含中文字符)使用Ant()在原始serverA上编译得很好,但是,当我们将相同的代码签出到新的serverB并运行相同的Ant脚本时,出现了编码错误,即“编码GBK的不可映射字符”。(JDK版本相同)

我们不知道为什么相同的源代码和相同的Ant编码参数会有不同的编译结果

是否存在可能导致此问题的任何设置,操作系统设置


谢谢。

经过一些调查

  • java文件确实存在GBK编码问题
  • 在serverB上,Ant构建脚本具有javac参数,而serverA没有
  • 从serverB中删除任务上的这两个参数后,复杂度将成功

    我们仍然不明白这其中的确切原因,但至少现在问题已经解决了

    如果你有任何线索,为什么会发生这种情况,请在下面留下评论


    谢谢

    您确定这是相同的源代码吗?在两台服务器上对同一文件进行文件比较。当签出到serverB时,字符编码可能会出错。@TedHopp我想你的意思是,从同一个存储库签出时,由于潜在的损坏,实际上可能会得到不同的文件编码。我将serverA和serverB的错误文件与Beyond Compare进行了比较,它们似乎是相同的。非常奇怪。。。我会检查
    JAVA\u HOME
    javac-version
    ,以确保使用了正确的JAVA。@Pavelhol是的,JAVA/javac-version都得到了正确的version@foolhunger您是否能够验证有问题的字符是否真的是有效的GBK?