DB emoji 저장 에러

남기현·2023년 8월 15일
0

트러블슈팅

목록 보기
5/5
post-thumbnail

📌 인코딩 오류

✅ 이모지(Emoji)나 이모티콘을 저장하는 중 발생하는 인코딩 오류

MYSQL이나 maria db 같은 경우 UTF-8이 3byte이기 때문에 4byte로 구성된 이모지를 저장할 경우 1366 에러가 발생한다.

사용 친화적인 앱 서비스를 운영하다보면 채팅 혹은 1:1문의하기를 통해 저장되는 데이터에 대한 이모지에 처리를 고민해봐야한다.

📌 처리 방법

이모지 저장

데이터베이스 or 테이블 or 컬럼의 character set, collate를 utf8에서 utf8mb4로 변경

이모지 예외처리

Pattern emojiRelace = Pattern.compile("[\\uD83C-\\uDBFF\\uDC00-\\uDFFF]+");
Matcher emojiMatcher = emojiRelace.matcher(emoji);
emoji = emojiMatcher.replaceAll("");
log.info(emoji);
profile
내가 보려고 만든 velog

1개의 댓글

comment-user-thumbnail
2023년 8월 15일

유익한 자료 감사합니다.

답글 달기