我现在正在尝试使用 pentaho ETL 将数据从 DB2 迁移到 Postgres。DB2 上的字符代码是 Shift-JIS(日语特定字符代码),Postgres 是 UTF-8。
我可以成功地将数据从 DB2 迁移到 Postgres,但是没有正确转换日文字符(它已更改为奇怪的字符..)
传输数据时如何将字符代码从 Shift-Jis 更改为 UTF-8?
我现在正在尝试使用 pentaho ETL 将数据从 DB2 迁移到 Postgres。DB2 上的字符代码是 Shift-JIS(日语特定字符代码),Postgres 是 UTF-8。
我可以成功地将数据从 DB2 迁移到 Postgres,但是没有正确转换日文字符(它已更改为奇怪的字符..)
传输数据时如何将字符代码从 Shift-Jis 更改为 UTF-8?
这对我来说虽然有点问题,但我最终可以解决它。
首先,您需要从作业列表中选择“Modified Java Script value”并编写如下脚本。(我假设表中的值为column1,新值为value1)
这是源代码的示例。(如果需要,可以指定多个值)
var value1 = new Packages.java.lang.String(new Packages.java.lang.String( column1 ).getBytes("ISO8859_1"),"Shift-JIS").replaceAll(" ",""); //
replaceAll()
如果不需要修剪字符串,则不需要使用。
最后,点击“获取变量”,值将显示在下表中。
然后,您可以在下一个作业中选择“value1”,它已被转换为正确的编码。(您指定的)