2015-09-28 32 views
3

我正嘗試使用pentaho ETL將數據從DB2遷移到Postgres。 DB2上的字符代碼是Shift-JIS(日文特定字符代碼),Postgres是UTF-8。當我將數據從DB2複製到Postgres時,如何將字符代碼從Shift-JIS更改爲UTF-8?

我可以從DB2的數據遷移到Postgres的成功,但日文字符沒有正確轉換(它已被更改爲奇怪的字符。)

如何更改字符代碼移位-JIS到UTF- 8我傳輸數據?

+0

據我調查,Jdbc只能使用UTF-8,因此,我可能必須在Pentaho從DB2獲取數據(源數據庫)之後轉換字符代碼, –

回答

1

這對我來說雖然有點問題,但我終於可以解決了。

首先,您需要從作業列表中選擇「已修改的Java腳本值」,然後按如下所示編寫腳本。 (我假設在表中的值是列1和新的值是值1)

steps

這裏是源代碼的例子。 (如果需要,您可以指定多個值)

VAR 值1 =新Packages.java.lang.String(新 Packages.java.lang.String(COLUMN1).getBytes( 「ISO8859_1」 ),「Shift-JIS」)。replaceAll(「」,「」); //如果您不需要修剪字符串,則不需要使用replaceAll()


最後,點擊「獲取變量」和值將在下面的表格中顯示。

enter image description here

那麼,你可以選擇在未來的工作中「值1」,它已轉換爲正確的編碼。 (你指定的)

相關問題