由于Kettle中的中文字符编码问题,搞了两天,终于找出了原因,现在分享出来。
问题描述:
使用PDI4.1写了一个transformation用来从XML读取数据,并且处理数据。其中有一步需要将某些字段中的“暂无资料”转换为空值。在JOB写好后,使用kettle repository保存在MySQL数据库中。
原因分析:
创建repository数据库时使用的enconding是latin,正确应当使用utf-8。建议使用文件保存ETL程序,版本控制使用SVN。
开始以为是读取XML文件的问题,后来发现它可以自动识别编码。
解决方法:
使用文件保存ETL文件。