🗂️ 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