我使用 Hibernate 和 MySQL 5 设置了 Spring 3 MVC。在 Web 表单中,我在字段中输入单个字符 €(即仅一个字符)。当我尝试保存数据时,出现以下异常:
java.sql.BatchUpdateException: Data truncation: Data truncated for column 'name' at row 1
“名称”是我的模型对象上的字符串。 MySQL 中“name”列的数据类型为 VARCHAR(80)。我还尝试在 TEXT 列中输入 €,结果相同。
我已经为我的网络应用程序配置了一个CharacterEncodingFilter,我的数据库连接字符串如下所示:
jdbc:mysql://localhost/baseApp?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf8
有什么想法可能是什么问题吗?
Update:
我不认为 MySQL 与这个问题有任何关系。我在设置模型对象的属性之前拦截了 HTTP POST,并且 € 被正确编码为 %80。然而,当我询问模型对象的属性时,€ 只是简单的 ?。
有什么想法吗?
你确定MySQL数据库支持UTF-8吗?我认为默认安装设置使用 latin1。您还需要确保 my.ini 配置文件中 [mysql] 和 [mysqld] 的“default-character-set”设置为“utf8”。此外,请确保该表是使用 UTF-8 设置构建的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)