使用kettle创建了一个作业,但是执行的过程中报错:Invalid byte 2 of 2-byte UTF-8
。这是由于编码问题导致的,解决办法如下:
1.更改本地Java环境的编码
增加系统环境变量JAVA_TOOL_OPTIONS
,值-Dfile.encoding=UTF-8
。
2.修改spoon.bat
文件更改Kettle编码设置。
set OPT=%OPT% %PENTAHO_DI_JAVA_OPTIONS% "-Dfile.encoding=UTF-8" "-Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2" "-Djava.library.path=%LIBSPATH%" "-Djava.endorsed.dirs=%JAVA_ENDORSED_DIRS%" "-DKETTLE_HOME=%KETTLE_HOME%" "-DKETTLE_REPOSITORY=%KETTLE_REPOSITORY%" "-DKETTLE_USER=%KETTLE_USER%" "-DKETTLE_PASSWORD=%KETTLE_PASSWORD%" "-DKETTLE_PLUGIN_PACKAGES=%KETTLE_PLUGIN_PACKAGES%" "-DKETTLE_LOG_SIZE_LIMIT=%KETTLE_LOG_SIZE_LIMIT%" "-DKETTLE_JNDI_ROOT=%KETTLE_JNDI_ROOT%"
如上,增加了"-Dfile.encoding=UTF-8"
。
参考: