카테고리 없음
mysql-db에 이모지 삽입이 되지 않는 현상 해결
피리음
2022. 10. 14. 12:58
mysql에 이모지를 포함한 텍스트("오늘은 코딩하기 좋은날 🌷 ")를 insert 하였고 다음과 같은 에러가 발생하였다.
insert into postings(user_id,contents) values (1,"오늘은 코딩하기 좋은날 🌷 ")
(1366, "Incorrect string value: '\\xF0\\x9F\\x8C\\xB7 ' for column 'contents' at row 1")
원인은 삽입하려는 텍스트(이모지)의 형식은 4바이트이나 기존 DB의 텍스트형식은 3바이트였기 때문이다. 따라서 데이터 형식을 utf8mb4(4바이트)로 변경해주었고 이후 정상적으로 삽입이 가능하게 되었다.
해결방법은 아래의 가이드를 참고하였다.
https://mathiasbynens.be/notes/mysql-utf8mb4#mysql-utf8mb4
참고로 텍스트 형식을 4바이트 형식으로 바꿔도 기존 데이터는 정상적으로 동작한다고 한다. (utf8mb4가 하위호환성을 지원하기 때문)