2010-07-12 6 views
1

나는 Spring 3 MVC에서 Hibernate와 MySQL 5를 설정했다. 웹 폼에서 필드에 하나의 문자, 즉 한 문자 만 입력한다. 그런 다음 데이터를 저장하려고하면 다음 예외가 발생합니다.스프링 3 MVC + MySQL : € 문자를 저장할 수 없다.

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

'name'은 (는) 내 모델 개체의 문자열입니다. 'name'열은 MySQL의 VARCHAR (80) 데이터 유형입니다. 나는 또한 같은 결과와 함께 TEXT 컬럼에 €를 입력하려고 시도했다.

내 웹 애플리케이션에 대한 CharacterEncodingFilter를 구성하고 내 DB 연결 문자열은 다음과 같습니다

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

모든 아이디어

문제가 무엇인지?

업데이트 :

내가 MySQL이이 문제와 아무 상관이 있다고 생각하지 않습니다. 내 모델 객체의 속성이 설정되고 €이 제대로 % 80으로 인코딩되기 전에 HTTP POST를 가로 챘습니다. 그러나 내 모델 객체의 속성을 조사 할 때 €는 단순히?

의견이 있으십니까?

+0

webapp에서 일부 샘플 코드를 보여줄 수 있습니까? 가능한 범위를 좁힐 수 있습니까? 감사! –

답변

0

MySQL 데이터베이스가 UTF-8을 지원하는지 확인 하시겠습니까? 기본 설치 설정은 latin1을 사용한다고 생각합니다. 또한 my.ini 구성 파일의 [mysql] 및 [mysqld]에 대한 'default-character-set'이 'utf8'로 설정되어 있는지 확인해야합니다. 또한 테이블이 UTF-8 설정으로 빌드되었는지 확인하십시오.

+0

MySQL 쿼리 브라우저를 통해 데이터베이스에 € 기호를 직접 입력하면 웹 응용 프로그램을 통해 제대로 표시되므로 문제가 아닌 것으로 판단됩니다 .. 웹 응용 프로그램을 통해 €를 입력 할 때만 발생합니다 –

+0

JSP가 UTF-8을 보내고 있습니다. 에서 DwB