2010-10-12 25 views
2

我的測試數據庫具有AL32UTF8編碼,但生產數據庫具有WE8ISO8859P1編碼。我的應用程序是在.NET中編寫的,我使用默認的System.Data.OracleClient.OracleConnection類來建立連接。Oracle編碼可以設置爲連接字符串嗎?

我創建一個IDbCommand,並且當我想插入一些帶有非ASCII符號的字符串時,我添加了IDbDataParameter對象。

在測試數據庫一切正常,明顯地轉換.NET的內部字符串格式爲AL32UTF8工作正常。但是在製作中我只是不起作用。 .NET內部字符串表示(即utf16)無法以某種方式轉換爲WE8ISO8859P1。我的問題: 你能指定連接字符串中的數據庫的編碼嗎?還是有另一種方法告訴驅動程序(System.Data.OracleClient.OracleConnection)數據庫需要特定的編碼?

+0

請不要給出像這樣的答案:convert(c1,'WE8ISO8859P1'),這不是我想要的! – Jaap 2010-10-12 10:41:36

+0

另外:轉換生產數據庫目前不是一個選項。 – Jaap 2010-10-12 10:41:56

+0

只要您不使用無法在WE8ISO8859P1中表示的字符,轉換就會自動發生。如果你有這樣的字符,無論如何你都不能將它存儲在數據庫中。你爲什麼不行?你有錯誤嗎?什麼是錯誤消息?請給我們更多的細節。 – Codo 2010-10-12 11:02:50

回答

3

只要您不使用無法在WE8ISO8859P1中表示的字符,轉換就會自動發生。如果你有這樣的字符,無論如何你都不能將它存儲在數據庫中。

如果您嘗試存儲歐元符號(€),那麼您的運氣不好。它不是WE8ISO8859P1的一部分。

相關問題