views:

69

answers:

1

Hi there, I have Spring 3 MVC set up with Hibernate and MySQL 5. In a web form, I enter a single character into a field, € (i.e. just the one character). When I then attempt to save the data, I get the following exception:

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

'name' is a String on my model object. The 'name' column is of datatype VARCHAR(80) in MySQL. I have also tried entering a € into a TEXT column, with the same result.

I have configured a CharacterEncodingFilter for my webapp and my DB connection string looks like this:

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

Any ideas what the problem might be?

Update:

I don't think MySQL has anything to do with this issue. I have intercepted the HTTP POST before the properties of my model object are set and the € is properly encoded as %80. When I interrogate the properties of my model object, however, €'s are simply ?'s.

Any thoughts?

A: 

Are you sure the MySQL database suports UTF-8? I think the default install settings uses latin1. You also need to make sure that the 'default-character-set' for [mysql] and [mysqld] in the my.ini configuration file is set to 'utf8'. Furthermore make sure the table was built with UTF-8 settings.

Thien
If I enter the € symbol directly into the database via MySQL query browser then it will display properly through my webapp, so I suspect this is not the issue.. It only occurs when I enter a € through my webapp
Deiter Zaputo