原理
kettle在将job发布的远程服务器的时候,会根据当前的java的默认编码生成压缩文件,然后传输到远程服务器执行。
原因
出现这种报错的原因是,你本地的java默认编码是gbk,所以发送到远程服务器的job就是gbk编码的,而远程服务器的java编码是utf-8,所以在执行job的时候会抛出异常。
解决方法
保证本地的java编码和远程服务器的java编码一致即可。方式很多,改服务器改本地都可以,建议改本地的。这里提供两个方法。
方法1. 更改本地java编码。改完之后重启kettle。
添加环境变量
JAVA_TOOL_OPTIONS
-Dfile.encoding=UTF-8
方法2. 更改kettle设置
到data-integeration根目录,找到Spoon.bat 。
在下图位置添加"-Dfile.encoding=UTF-8"