MYSQL java.sql.SQLException: Incorrect string value: '\xEC\x99\x80 \x0

2017. 2. 2. 09:52카테고리 없음

MYSQL  java.sql.SQLException: Incorrect string value: '\xEC\x99\x80 \x0




### Cause: java.sql.SQLException: Incorrect string value: '\xEC\x99\x80 \x0D\x0A...' for column 'courtXml' at row 1

; uncategorized SQLException for SQL []; SQL state [HY000]; error code [1366]; Incorrect string value: '\xEC\x99\x80 \x0D\x0A...' for column 'courtXml' at row 1; nested exception is java.sql.SQLException: Incorrect string value: '\xEC\x99\x80 \x0D\x0A...' for column 'courtXml' at row 1



MYSQL 을 사용해 작업을 하던 중 위와 같은 에러가 발생했습니다.

구글링을 해보면, 보통 utf-8 관련한 해법들이 많이 있고, 어떤 글에는 mysql bug 이야기까지도 나옵니다.

mysql 접속 url 에 "useUnicode=true&characterEncoding=UTF-8" 을 추가해보라는 것도 있구요.

저 같은 경우는 데이터 타입이 TEXT 타입이었고, TEXT 가 충분히 큰 길이이기 때문에 별 신경을 안 썼는데..

수 많은 시행착오 끝에 ( ㅠㅠ ) 컬럼에 입력하려던 데이터가 65535 바이트를 넘는 것을 확인했습니다. 

사실 Data too long Exception 이 떨어지지 않았기 때문에 데이터 길이는 신경을 쓰지 않았는데요.

( 이건 엉뚱한 Exception 을 떨어뜨려준 java 잘못입니다 )


TEXT -> MEDIUM TEXT 로 변경 후 에러는 사라졌습니다.


비슷한 해결책을 찾지 못했기에 간단하게나마 적어둡니다.