postgresql - 当我将数据从 DB2 复制到 Postgres 时,如何将字符代码从 Shift-JIS 更改为 UTF-8?

标签 postgresql db2 pentaho spoon

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

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

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

最佳答案

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

首先,您需要从作业列表中选择“Modified Java Script value”并编写如下脚本。 (我假设表中的值为 column1,新值为 value1)

steps

这里是源代码的例子。 (如果需要可以指定多个值)

var value1 = new Packages.java.lang.String(new Packages.java.lang.String(column1).getBytes("ISO8859_1"),"Shift-JIS").replaceAll(" ",""); //you don't need to use replaceAll() if you don't need to trim the string.


最后点击“获取变量”,值就会显示在下表中。

enter image description here

然后,您可以在下一个作业中选择“value1”,它已经转换为正确的编码。 (你指定的)

关于postgresql - 当我将数据从 DB2 复制到 Postgres 时,如何将字符代码从 Shift-JIS 更改为 UTF-8?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32819250/

相关文章:

sql - postgresql : Get only a single record from result containing multiple rows

db2 - db2 中的“DECFLOAT”错误

hadoop - 我想在pentaho工作

database - DB2 中是否应该避免左外连接

postgresql - Redshift 插入瓶颈

mysql - Jaspersoft/Pentaho - 通过 SSH 连接到 MySQL

javascript - Sequelize - 两个 ID 上的双连接表

c++ - 有哪些使用 PostgreSQL 以 C/C++ 编写的开源应用程序?

database - 数据库中不可编辑的字段

tomcat db2 jdbc连接问题