개발 시 이모지가 물음표로 노출되지 않도록 하는 방법

웹페이지에 게시글을 등록했을 때 (백오피스 등을 통하여), 이모지(예: 🙃)를 썼음에도 불구하고 등록된 게시글에서는 ??로 노출되는 경우가 있습니다.

이는 해당 데이터가 입력되는 DB의 데이터 타입이 UTF-8이어서 그렇습니다 (MySQL, MariaDB의 경우에 한하여 발생).

 

우선 결론적으로 해결 방법은 단순합니다. 해당 데이터의 속성을 utf8mb4로 설정해야 하면 됩니다 (개발자분에게 도움을 요청하여 ^^).

 

UTF-8, utf8mb4란?

UTF-8, utf8mb4는 텍스트가 어떤 형태(?)인지를 설정하는 것이다. 컴퓨터에서 문자를 표현하기 위하여 유니코드를 사용하기 때문에 그방식 중 하나인 것이다. 이 때, 각각의 방식이 표현할 수 있는 byte수가 다르기 때문에 문제가 발생한 것이다.

 

즉, UTF는 원래 3bytes를 지원하기 때문에, 4bytes가 필요한 Emoji는 표현이 되지 않았던 것!