因此,出於一些傳統原因,我們有一個帶有NLS_CHARACTERSET = WE8MSWIN1252
的Oracle數據庫。現在我們要將CJK字符存儲到VARCHAR2
字段中。這是可能的,如果是這樣,我需要做些什麼來實現這一點? PS:由於產品已發佈,因此更改NLS_CHARACTERSET
將不再有問題。使用默認的NLS_CHARACTERSET設置在Oracle中存儲utf-8字符
編輯
到目前爲止,我們已經提出了這樣一個想法: 因爲我們打破它到它的UTF-8字節表示每個CJK字符,然後存儲字節順序到數據庫中。作爲回報,我們將它們重組爲一個CJK字符。例如,中文字符中
將爲0xe4, 0xb8, 0xad
,所以我們改爲存儲3個字節。
但是,這種方法似乎不能正常工作。如果我們在字節中存儲中文字符華
,即0xe5, 0x8d, 0x8e
,則數據庫中將變爲0xe5, 0xbf, 0x8e
。
我們正在使用Java語言,不知道這是否與結果有關。
謝謝賈斯汀你的答案。我已經添加了我們目前的方法(雖然沒有正常工作),請您幫忙檢查一下,比方說,如果它(接近)正確的方式? – 2013-03-20 07:34:08