当我将数据从 DB2 复制到 Postgres 时,如何将字符代码从 Shift-JIS 更改为 UTF-8?
How can I change character code from Shift-JIS to UTF-8 when I copy data from DB2 to Postgres?
我正在尝试使用 pentaho ETL 将数据从 DB2 迁移到 Postgres。
DB2 上的字符代码是 Shift-JIS(日语特定字符代码)而 Postgres 是 UTF-8。
我可以成功地将数据从 DB2 迁移到 Postgres,但是日语字符没有正确转换(已更改为奇怪的字符..)
如何在传输数据时将字符代码从 Shift-Jis 更改为 UTF-8?
虽然对我来说有点问题,但我终于解决了。
首先,您需要从作业列表中选择"Modified Java Script value"并编写如下脚本。
(我假设 table 中的值为 column1,新值为 value1)
这里是源代码的例子。 (如果需要可以指定多个值)
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.
最后点击"Get variables",数值会显示在下面的table中。
然后,您可以在下一个作业中选择"value1",它已经转换为正确的编码。 (您指定的)
我正在尝试使用 pentaho ETL 将数据从 DB2 迁移到 Postgres。 DB2 上的字符代码是 Shift-JIS(日语特定字符代码)而 Postgres 是 UTF-8。
我可以成功地将数据从 DB2 迁移到 Postgres,但是日语字符没有正确转换(已更改为奇怪的字符..)
如何在传输数据时将字符代码从 Shift-Jis 更改为 UTF-8?
虽然对我来说有点问题,但我终于解决了。
首先,您需要从作业列表中选择"Modified Java Script value"并编写如下脚本。 (我假设 table 中的值为 column1,新值为 value1)
这里是源代码的例子。 (如果需要可以指定多个值)
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.
最后点击"Get variables",数值会显示在下面的table中。
然后,您可以在下一个作业中选择"value1",它已经转换为正确的编码。 (您指定的)