본문 바로가기
개발아닌개발/springboot

[오류] Maria DB 한글 insert 안됨 인코딩변경방법(UTF-8) : Incorrect string value: '\xEC\x95\x88\x85\x95....' for column ~

by 불청객 2023. 5. 24.
반응형

Spring boot - Maria + JPA 

 

문제

HeidiSQL 프로그램을 사용하여, Maria 데이터베이스만 생성하고 SpringBoot에서 Entity로 테이블이 자동으로 생성되었는데, 문제는 save() 호출 시 maria DB로 insert 가 안되는 문제

 

 

Incorrect string value: '\xEC\x95\x88\x85\x95....' for column ~ 

 

원인은 인코딩

(영어는 가능. 한글 불가)

이 문제 해결을 위해, 인코딩 설정을 여러차례 바꿔줬다.

 

시도1

application.properties

spring.datasource.hikari.jdbc-url=jdbc:mariadb://localhost:3306/community

url 뒤에 인코딩을 utf-8로 설정하겠다는 내용을 아무리 적고 insert를 시도해도, 프로퍼티 설정으론 해결안됨

참고로, HeidiSQL에서 테이블 옵션 들어가보면 조합 기본값이 latin1_swedish_ci 으로 설정되어 있다. → 한글 적재 불가

 

해결

spring boot 설정으로는 결국 못 찾고, DB 자체의 인코딩 설정을 바꾸는 방법으로 해결

HeidiSQL 에서 아래 쿼리문 수행

ALTER TABLE {테이블명} convert to charset utf8;

HeidiSQL에서 테이블 옵션 들어가보면 조합 utf8mb3_general_ci 으로 변경되어있음

 

 

 

결과. insert 성공

 

문제는 SpringBoot에서 Table을 생성할때마다 ALTER를 사용해서 인코딩설정을 변경해줘야한다는 불편한 점이...

SpringBoot에서 생성할때부터 인코딩 못바꾸나 ...ㅠㅠ

728x90
반응형

댓글