2009-11-17 86 views
2

我試圖插入數據與日本字符到oracle數據庫。事情是在數據庫中保存的是一堆倒置的問號。我該如何解決這個問題休眠編碼

+1

您確定您擁有正確的數據庫字符集嗎? – bmargulies 2009-11-17 02:36:43

+0

是的。當我通過pl/sql直接輸入並保存nihongo數據時,它被成功保存。但是當我使用我的應用程序休眠時,它會保存倒立的問號 – cedric 2009-11-17 03:23:15

回答

3

請參閱http://www.errcode.net/blogs/?p=6來確定您的數據庫的編碼。我目前在UTF-8中使用帶Hibernate的Oracle,沒有額外的配置。

另外,您可能想要檢查輸入值是否正確編碼。例如,如果您有Web應用程序,請檢查請求參數編碼(或將其設置爲request.setCharacterEncoding("utf-8")

+0

我正在使用Oracle數據庫與休眠。我的數據庫的當前編碼是WE8MSWIN1252。無論如何,我可以通過PL/SQL成功保存nihongo字符。 我插入的值也不是來自頁面形式..我最初硬編碼在我的DAO值,以檢查問題是否與請求編碼或與休眠本身。 – cedric 2009-11-17 07:25:39

+0

那麼,有你的問題 - 編碼更改爲UTF-8(而不是1252)。它從某個地方運行的事實並不意味着這些設置是正確的。 硬編碼值受Java文件編碼或VM編碼影響 - 需要檢查的變量太多。 – Bozho 2009-11-17 07:34:15

+0

Whew ..經過一個星期的故障排除。這解決了我的問題。我使用AL32UTF8字符集創建了一個新的db實例。 Tnx .. :) – cedric 2009-11-17 10:03:08