🗂️ Etc

이모지(Emoji) 단축키 및 MySQL과 Javascript에서 사용하기

loose 2022. 12. 17. 17:33
반응형

이모지 사용법

 

키보드에서 아래 키를 누르면 이모지를 입력할 수 있다.

Window + . 

🍕🍔🍟🌭🍿🧂🥓🥚🍳🧇🥞🧈🍞🥐🥨🥯🥖

 

하지만 이러한 값들을 mysql 환경에서 삽입하려고 하면 

could not execute statement라는 에러와 함께 올바르게 들어가지 않는다.

왜냐면 mysql에서는 초기 UTF-8 자료형을 3바이트 가변 자료형으로 설계하였기 때문에 제대로 삽입이 안된다.

일반적인 모든 언어들은 3 Byte 이하로 이루어져있기 때문이다. 하지만 이모지는 4 Byte로 이루어져있다.

 

그래서 UTF-8을 UTF8MB4 타입으로 바꿔줘야한다.

아래 방법중에 테이블 변경으로만으로도 해결이 되었다.

(물론 테이블 전체를 4 Byte로 바꾼 것이기 때문에 설계적으로 좋지 않을 수 있겠다)

 

데이터베이스에서 다루는 법

 

데이터베이스 변경

ALTER DATABASE [데이터베이스명] CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

테이블 변경

ALTER TABLE [테이블명] CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

컬럼 변경

ALTER TABLE [테이블명] CHANGE [컬럼명] [컬럼명] VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

자바스크립트에서 다루는 법

 

아래와 같이 Javascript 명령문을 이용해 이모지의 글자 길이를 알고 싶을 수 있다.

"🥯🥖".length

하지만 내가 원하는 값은 2글자이므로 결과는 2가 나오길 원하지만 4가 나온다.

아래와 같이 배열 방식으로 접근하면 올바르게 결과를 볼 수 있다.

[..."🥯🥖"].length
728x90