從一個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/