【问题标题】:How can I change character code from Shift-JIS to UTF-8 when I copy data from DB2 to Postgres?将数据从 DB2 复制到 Postgres 时,如何将字符代码从 Shift-JIS 更改为 UTF-8?
【发布时间】:2015-09-28 09:05:50
【问题描述】:

我现在正在尝试使用 pentaho ETL 将数据从 DB2 迁移到 Postgres。 DB2 上的字符代码是 Shift-JIS(日语特定字符代码),Postgres 是 UTF-8。

我可以成功地将数据从 DB2 迁移到 Postgres,但是日文字符没有正确转换(已更改为奇怪字符..)

传输数据时如何将字符代码从 Shift-Jis 更改为 UTF-8?

【问题讨论】:

  • 据我调查,Jdbc 只能使用 UTF-8,因此,我可能需要在 Pentaho 从 DB2(源 DB)获取数据后转换字符代码

标签: postgresql db2 pentaho spoon


【解决方案1】:

虽然对我来说有点问题,但我终于可以解决它。

首先,您需要从作业列表中选择“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”,它已被转换为正确的编码。 (你指定的)

【讨论】:

    猜你喜欢
    • 2021-05-29
    • 2014-05-02
    • 1970-01-01
    • 2016-09-06
    • 1970-01-01
    • 2022-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多