2012-04-19 48 views
0

我正在開發一個帶有oracle數據庫的.net Windows應用程序。我們的要求是用UI上的¼(ascii 188)替換「&#188」並保存在oracle表中。但是,在替換值後,它在UI和Oracle表中顯示「反向」問號,當我使用pl/sql開發人員查詢表時,它將存儲爲問號。在Oracle中存儲特殊字符並使用.net應用程序

有些人可以處理這類問題嗎?

謝謝, H N MISHRA

回答

0

ASCII從0到127沒有ASCII字符188有一個Unicode字符U+00BC = 4,1和00BC六角的確是188(十進制)。這就是答案的提示:使用Unicode,那很簡單。幸運的是.Net已經使用Unicode,而在Oracle中它只是一個簡單的設置。

+0

有超過350個html charcaters可以用其他值替換,我們保留Oracle表中的所有這些來替換那些動態的。當我將這些值從記事本複製到oracle表中時,¼轉換爲「?」。而在一些發展中的機器上,.net界面顯示正確的值,即更換後的1/4,但是他們的pl/sql開發人員也顯示「?」在桌子裏。但在我的機器上.net界面和pl/sql開發人員顯示「?」。窗口中是否有任何設置來顯示這些特殊字符的正確值? – 2012-04-19 09:23:31

+0

@ H.N.Mishra:請勿使用記事本檢查特殊字符。您的問題可能是由記事本引起的。 – Codo 2012-04-19 10:19:13

+0

@Codo:記事本沒有任何問題。它完全是Unicode,就像所有的Windows組件一樣。因此它甚至沒有「特殊」字符的概念。 「U + 00BC」只是一個像「U + 007C」或「U + 8BFE」這樣的字符。另一方面,Oracle使用多種不同的字符編碼,如Latin-1。 – MSalters 2012-04-19 10:36:37

0

看來您的Oracle數據庫設置的字符集不包含¼字符。 (我假設你指的是Unicode代碼點188,因爲ASCII字符集不包括1/4)。

很可能,您需要轉換數據庫的字符集。我推薦AL32UTF8(UTF-8),它支持完整的Unicode範圍。

有一個Oracle文檔描述了character set migration

+0

Charcater用Oracle DB設置很好,因爲它在其他開發者機器上正確顯示。我相信它需要改變以顯示正確的客戶端機器的本地設置? – 2012-04-19 09:50:55

+0

@ H.N.Mishra:如果是這種情況,那麼我認爲你的問題不在於Oracle或訪問數據庫的.NET代碼(可能是ADO.NET)。因爲他們基本上使用Unicode,完全意識到字符集並且不引入問題。請描述從數據庫到用戶界面的所有工具的完整管道。管道中的任何步驟可能已更改爲¼個字符。 – Codo 2012-04-19 10:20:49