我必須開始說我不是Oracle用戶專家,所以我有一些難以理解的基礎知識:D。我們的應用程序是一個使用Nhibernate db連接的MVC應用程序。問題在於,當我們試圖將'ѼóÂ'這樣的字符保存到NVARCHAR2字段時,它們被保存爲問號'?'。爲了解決這個問題,我們將其更改爲數據庫中的其他字符集。NLS_NCHAR_CHARACTERSET說明
這是我們的NLS_DATABASE_PARAMETERS在安裝:
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET EE8ISO8859P2
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY $
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_RDBMS_VERSION 10.2.0.4.0
淵源NLS_CHARSET是EE8ISO8859P2,我們把它改爲:AL32UTF8(完美的作品)。問題是不是NLS_NCHAR_CHARACTERSET suposed來處理像nvarchar2字段的那些特殊字符?如果沒有,那麼有人可以向我解釋它的追求嗎?
編輯:NLS_LANG設置爲:POLISH_POLAND.AL32UTF8
Thx供您參考。波蘭信件在這裏並不是他們存儲的問題。在cyrylic中的字母是,但如果你說的是真實的,NLS_CHARACTERSET是未來需要關注的主要問題,再次感謝你:) – AdrianCogiel 2014-10-17 14:14:55
* National Charaterset'AL16UTF16'能夠存儲任何Unicode字符,所以你的波蘭語字符應該沒有問題。* - 在問題中給出的三個字符中 - 只有第二個字符是波蘭語。 – 2017-02-17 12:51:51