2011-12-16 53 views
1

UTF8字符未顯示在Oracle數據庫的鏈接表中。 (他們甚至導致訪問有問題鎖定記錄)在鏈接到MS Access的oracle表中使用UTF8

我試着將"charset=utf8"添加到連接字符串,但到目前爲止它沒有工作。

我以爲當程序運行時我會嘗試此查詢:

SET NAMES utf8

但我怎麼通過相同的連接鏈接表的遠程Oracle服務器上運行呢?

回答

2

我自己沒有在Windows上使用Oracle ODBC,但是我在許多UNIX操作系統上使用了各種Oracle ODBC驅動程序。你沒有說你正在使用哪個ODBC驅動程序,但是你確定它有一個連接屬性charset = utf8? Linux的Oracle ODBC驅動程序似乎沒有這個屬性。另外,我還沒有聽說過Oracle的「set names utf8」;是不是一個MySQL的東西?

在UNIX中,您可以將您的NLS_LANG環境變量設置爲AMERICAN_AMERICA.AL32UTF8,該變量告訴Oracle客戶機庫如何獲取數據。另外,ODBC並沒有真正做到UTF-8(這裏的解釋時間太長)。 Windows上的ODBC驅動程序使用所謂的廣泛API SQLxxxW,它們接收並返回大小爲2個字節並且通常是UCS-2編碼的SQLWCHAR。 Windows上的符合Unicode的驅動程序應提供SQLxxxW範圍廣泛的API,而UTF-8則不提供。

但是,正如我所說,我不在Windows上使用Oracle,但上面的一些可能會幫助您。

+0

這樣做!我用一個小的VBA在啓動時設置環境變量(在這裏找到:http://www.eileenslounge.com/viewtopic.php?f = 30&t = 4857),它現在工作正常。 – skerit 2011-12-16 14:25:05

相關問題