2012-06-18 47 views
1

我需要使用Java(hibernate 3.0/jpa)在Oracle數據庫中插入中文字符,我嘗試了很多方法並失敗。如何使用Java在Oracle數據庫中插入中文字符

當我堅持實體,我看到(???)在字段中,當我檢索值時,我看到了相同的結果。

的My Oracle NLS_DATABASE_PARAMETERS

NLS_CHARACTERSET WE8MSWIN1252 
NLS_NCHAR_CHARACTERSET AL16UTF16 

列的類型是NVARCHAR。我在persistence.xml中

<property name="hibernate.connection.useUnicode" value="true" /> 
<property name="hibernate.connection.characterEncoding" value="UTF-8"/> 
<property name="hibernate.connection.charSet" value="UTF-8"/> 

回答

1

設置該屬性,我在SQL服務器同樣的問題,還有我們所有的VARCHAR字段轉換爲nvarchar的解決了這個問題。還需要更改所有相應的存儲過程和返回類型。確保你所有的程序都具有nvarchar數據類型

2

如果有機會,那麼將數據庫從字符集WE8MSWIN1252轉換爲AL32UTF8(這是新的Oracle安裝的默認值)。然後,所有問題都將消失,您不需要使用有問題的數據類型,例如NCHAR或NVARCHAR或任何特殊的連接設置。

+0

我不能那樣做! – user1025523

相關問題