[DB] 이모지 DB(MySQL, Maria DB) 저장 버그 해결

2021. 6. 10. 22:22Database

** 초보 개발자로 글에 수정해야 할 부분이 있을 수 있습니다. 정정해야 할 부분은 댓글로 소통 부탁드립니다!

 

개발자가 아무리 다양한 케이스들을 고려하여 프로그래밍한다고 해도

실 사용자들의 다양한 유즈케이스들을 만족시키기란 너무 어렵죠... ㅠ

저의 경우에는 사용자들의 이모지(이모티콘) 입력이 그러했어요~

 

귀여운 이모지 친구들 ^^

 

실제로 SERVER에서는 wrong string 1366 ERROR 가 발생했습니다.

 

원인이 무엇일까요?

 

4byte로 구성된 이모지utf8 characterset으로 입력이 가능하지만,MySQL 및 MariaDB 에서는 utf8을 3byte로 처리하고 있어 문제가 발생하는 것이었습니다.

 

 

해결책

:: alter 쿼리를 통해 DB의 characterset, collate(정렬 방식)을 utf8(설정에 따라 다름) -> utf8mb4로 변경

   전체 DB의 characterset, collate을 변경할 수도 있고, 원하는 테이블의 컬럼만 변경할 수도 있음

   (쿼리는 검색해보세요~!)

 

 

[References]

 

Maria DB (MySQL) 이모지 입력 버그해결

최근 커뮤니티 데이터 수집 프로젝트를 진행 중인데, 사용자가 작성한 내용을 DB에 입력하는 부분에서 에러가 종종 발생했다. 원인을 파악해 보니, 이모지(emoji) 문자열을 DB에 입력하면서 문자셋

brunch.co.kr

 

[MariaDB] 문자셋 변경 utf8 -> utf8mb4

MariaDB의 문자셋을 UTF8로 설정해두고 사용하고 있었는데 SQL이 오류가 발생했다. 로그를 봐도 깨진 문자열만 보이고 해당 문제가 무슨 글자인지 몰랐다. 인코딩이 맞지 않아서 깨진 것처럼 보이는

nakanara.tistory.com