이번에 입사한 회사에서 프로젝트를 진행하던 도중 Android/iOS 등에서 사용하는 이모티콘을 mysql에서 처리하지 못하는 이슈가 발생하였다.
(멘붕)
구글링을 하던 도중 발견한 사실..
Android/iOS 등에서 사용하는 이모티콘은 특수한 경우를 제외하고는 4비트이고 utf8로 인코딩이 설정된 MySQL에서 받을 수 있는 문자열은 3바이트까지만 지원한다는 내용이였다.
해결 방법
이모티콘을 mysql에 저장하기위해서는 인코딩을 변경해주어야한다. 인코딩은 문자 하나당 4바이트를 지원하는 utf8mb4로 변경하여야 했는데,
django settings.py에서 DATABASE 부분에
"OPTIONS": {"charset": "utf8mb4"},
옵션을 추가하여 해결하였다.
화이팅! ^^