从一个utf8的postgres抽到另一个utf8的postgres里,中间除了一步python的数据脱敏,其余都是kettle流程,排查发现,数据从进入kettle开始就是乱码了, 还没有经过python的步骤,所以锁定在kettle的问题。通过修改kettle的启动文件Spoon.bat来解决之。
if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xms128m" "-Xmx4096m" "-XX:MaxPermSize=256m"
用notpad++右键打开Spoon.bat,找到上边的这句话,在他后边添加指定编码即可。
if "%PENTAHO_DI_JAVA_OPTIONS%"=="" set PENTAHO_DI_JAVA_OPTIONS="-Xms128m" "-Xmx4096m" "-XX:MaxPermSize=256m" "-Dfile.encoding=UTF8"
重启kettle解决之。
参考:
https://forums.pentaho.com/threads/94865-encoding-problem-utf8/
来源:oschina
链接:https://my.oschina.net/finchxu/blog/4503451