解决 Hudson 控制台输出乱码

    我的 Hudson 装在英文版的 Windows XP 里,但是有些 build tool 会输出中文,这样一来在查看 Hudson 的控制台输出(如:http://localhost:8080/job/test/1/console)时所有中文都变成了乱码。

  由于我不是搞 Java 的,所以没有看过 Hudson 的源码,但是从解决方案上来看,乱码的根本原因在于 Hudson 弄错了控制台数据的字符编码。如果你的 Hudson 也存在这个问题,那么首先可以进入“系统管理”->“系统信息”,看看“file.encoding”的值是不是“Cp1252”,如果是的话那么你可以接着往下看:)

  file.encoding = Cp1252 意味着 Hudson 认为你的控制台输出数据是 Cp1252 编码,由于 Hudson 的 Web page 编码是 UTF-8 编码,所以 Hudson 会尝试做一个 Cp1252 to UTF-8 的转换,把中文当作拉丁文来解读,其结果当然是错的了。解决方法如下:

1) 如果你是在命令行启动 Hudson 的(如:java -jar hudson.war),那么就给 java.exe 多传一个参数“-Dfile.encoding=gbk”(gb2312 也可以)

2) 如果你已经把 Hudson 安装成 Windows Service 了,那么打开 hudson.xml,把“arguments”节点的内容改成:
   

<arguments>
    -Xrs -Xmx256m -Dfile.encoding=gbk -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar “%BASE%\hudson.war” –httpPort=8080
</arguments>

重启 Hudson 以后,再进入系统信息,可以看到 file.encoding 的值已经变成了 gbk 了。

你可能感兴趣的:(hudson)