-
Springboot JPA mariadb에서 CRUD할 때 인코딩 오류 발생Spring 2023. 6. 25. 23:46
Springboot 에서 폼으로 데이터를 입력 받아 JPA로 mariadb에 CRUD하는 기능을 만들던 중
한국어로 입력 시 자꾸만 utf8 인코딩 오류가 발생했다.
data truncation: incorrect string value: '\xea\xb0\x9c\xec\x9d\xb8' for column
처음엔 비즈니스 로직에서 utf8 변환을 하거나 application.yml 파일에
database url 설정을 아래로 해주었으나 그럼에도 계속 오류는 발생했다.
jdbc:mysql://URL?useSSL=false&useUnicode=true&characterEncoding=utf8
구글링 해보니 mariadb 자체의 인코딩 설정을 바꿔줘야 했다.
windows에서는 my.ini 파일을 찾아 수정해주면 되었다.
[client] default-character-set = utf8 [mysql] default-character-set = utf8 [mysqld] init_connect="SET collation_connection=utf8_general_ci" init_connect="SET NAMES utf8" character-set-server = utf8 collation-server = utfg_general_ci skip-character-set-client-handshake
db의 인코딩을 확인해보니 utf8로 설정이 바뀐 걸 확인했다.
그런데도 해결이 안돼서 2시간을 삽질했는데
table의 인코딩을 확인 안했던 것이었다.
show full columns from db.table;
바뀐 설정의 table이 아닌 이전에 만들어진 설정의 table이 계속 살아있어서
오류가 계속 발생했던 거였다.
이전에 만든 table을 삭제하고 변경한 설정으로 다시 table을 만들고
폼에 데이터를 입력했다.
db에 데이터가 들어간 것을 확인할 수 있었다.
반응형'Spring' 카테고리의 다른 글
Springboot JPA 폼으로 데이터 입력받아 db에 insert하기 (0) 2023.06.26 Mybatis란? (0) 2021.03.25