取消
顯示的結果
而不是尋找
你的意思是:

如何正確地從表加載Unicode (utf - 8)字符通過JDBC連接使用辛巴火花司機嗎

全
新的貢獻者三世

你好所有的,我想把表數據從磚表包含外文字符的utf - 8使用JDBC連接到ETL工具。我用的是最新的辛巴火花JDBC驅動程序可以從磚的網站。

問題是,當數據過來所有的外語和特殊字符轉換為垃圾字符。我在尋找任何配置設置使用unicodeutf - 8與JDBC url或配置設置,但找不到任何東西。辛巴的ODBC版本驅動確實有一個屬性“UseUnicodeSqlCharacterTypes”,如果啟用了ODBC連接器為字符串並返回SQL_WVARCHAR VARCHAR列,並返回SQL_WCHAR CHAR列。

似乎沒有什麼我能做的JDBC驅動程序。有一些其他的JDBC驅動程序或其他方法我可以試著把正確編碼在JDBC unicode數據?任何幫助將不勝感激。謝謝。

1接受解決方案

接受的解決方案

全
新的貢獻者三世

用戶你好,

我發現解決這個問題,這部分與你建議。

最初我也試著UseUnicodeSqlCharacterTypes = 1,但不產生影響。

最終我意識到這個問題是與JAVA係統屬性還建議。

我不得不更新2屬性:

文件。編碼(像你建議)

sun.jnu.encoding

一旦我設置這兩個utf - 8,一切都很好。

在原帖子查看解決方案

9回複9

Kaniz
社區經理
社區經理

你好@!我的名字叫Kaniz,我這裏的技術主持人。很高興認識你,謝謝你的問題!看看你的同行在社區有一個先回答你的問題。否則我將與我的團隊跟進,回到你soon.Thanks。

werners1
尊敬的貢獻者三世

磚能夠很好地處理unicode的。看來你的ETL工具不能被配置為UTF8 ?

我們有同樣的問題複製數據到一個數據庫中。原因是一個unicode數據庫排序規則。

ETL工具應該識別的字符串列作為UTF8磚表。

也許你可以嚐試繞過JDBC驅動程序和直接使用鑲花的文件,而不是在表的接口?

全
新的貢獻者三世

你好維爾納,問題不在於磚(所有的數據看起來不錯,當我看著它適當的編碼),這個問題是辛巴JDBC驅動程序在默認情況下似乎將隨著字符串數據類型的列SQL_VARCHAR SQL_WVARCHAR,而是為這個特定的用例我需要使用表接口。其他JDBC驅動程序通常有一些屬性可以設置為告訴它使用unicode和UTF8,震驚了我找不到這個磚的辛巴JDBC驅動程序提供了。

werners1
尊敬的貢獻者三世

我之所以問你可以繞過直接鑲花的jdbc驅動程序通過讀取文件。是你的ETL工具能夠閱讀鋪文件寫的磚嗎?

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map