개발머해니

[DB] 오라클에 이모지(Emoji)를 저장할 수 있을까? 본문

백엔드

[DB] 오라클에 이모지(Emoji)를 저장할 수 있을까?

왕행님 2023. 8. 31. 06:56
728x90
반응형

현업에서 공지사항에 이모지를 작성할 수 있게 해달라는 요청이 왔습니다!
하지면 당행 내에 이모지를 DB에 저장하여 사용한 업무는 전무했습니다…

오라클에 이모지(Emoji)를 저장할 수 있을까?

현재까지 제가 확인한 정답은 '아니요' 입니다.

이모티콘(emoji) 는 4byte 에 해당하는 유니코드로 오라클 charset UTF-8 (3byte) 에서는 호환되지 않아 [???] 로 저장됩니다.
 
따라서 오라클에서는 이모지 저장이 불가능합니다. 
회사 내에 이모지 변환 규약을 새로 설정하던지, mySQL 데이터 베이스를 사용해야 합니다!
 
현재는 화면 단에서 원천적으로 이모지 입력이 불가능하게 제어해두었습니다.
 

 

이모티콘 오라클,Mysql 저장에러 정규식 체크

결함 : 모바일 웹에서 이모티콘 저장하니까 QA 에서 결함 올려서 처리 원인 : 이모티콘(emoji) 는 4byte 에 해당하는 유니코드로 오라클 charset UTF-8 (3byte) 에는 없어서 ??? 로 저장됨. 1)이모티콘 정규식

endless-learn-code.tistory.com

 

Mysql은 어떻게 이모지 저장이 가능할까?

mysql charset에는 utf8mb4라는 charset을 지원하기 때문입니다. charset이란 문자가 어떠한 ‘코드’로 저장될지 규칙을 정하는 것을 의미합니다.
 
기존에 사용하던 ‘utf_’로 시작되는 charset은 가변3바이트를 사용합니다. 반면 ‘utfmb4_’로 시작되는 charset은 한문자를 인코딩하는데 4바이트를 사용합니다.
 
실제로 이모지는 4 byte를 필요로 하기 때문에 utf8mb4라는 charset을 사용하면 이모지를 저장할 수 있게 됩니다. 
 

728x90
반응형