2010-07-12 76 views
1

我用Hibernate和MySQL 5設置了Spring 3 MVC。在web表單中,我在字段中輸入單個字符(即只有一個字符)。當我嘗試保存數據時,出現以下例外情況:Spring 3 MVC + MySQL:不能存儲€字符

java.sql.BatchUpdateException: Data truncation: Data truncated for column 'name' at row 1 

'name'是我模型對象上的字符串。 'name'列是MySQL中的數據類型VARCHAR(80)。我也嘗試在TEXT列中輸入€,結果相同。

我配置了CharacterEncodingFilter我的web應用程序和我的數據庫連接字符串是這樣的:

jdbc:mysql://localhost/baseApp?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8 

任何想法是什麼問題呢?

更新:

我不認爲MySQL有什麼關係這一問題。我已經攔截了HTTP POST,然後我的模型對象的屬性被設置並且€被正確編碼爲%80。然而,當我詢問我的模型對象的屬性時,它們就是?的。

有什麼想法?

+0

你可以展示一些來自webapp的示例代碼,所以我們可以縮小可能性嗎?謝謝! – 2010-07-12 21:24:32

回答

0

你確定MySQL數據庫支持UTF-8嗎?我認爲默認安裝設置使用latin1。您還需要確保my.ini配置文件中[mysql]和[mysqld]的'default-character-set'設置爲'utf8'。此外請確保該表是使用UTF-8設置構建的。

+0

如果我通過My​​SQL查詢瀏覽器直接輸入€符號到數據庫中,那麼它將通過我的webapp正確顯示,所以我懷疑這不是問題..只有當我通過我的webapp輸入€時纔會發生 – 2010-07-12 18:24:14

+0

請確保您的JSP正在發送UTF-8。 在 – DwB 2010-11-18 13:59:05