개요

utf8 charset에서는 이모지를 처리할 수 없다.
utf8mb4 언어셋 소개 및 표현범위 포스팅에 따르면 이모지가 mysql 또는 maria의 utf8 셋의 가변공간을 사용하려 들려 하는 문제인데, utf8mb4 셋으로 변경하면 해결 된다.

mysql이거나 maria의 charset을 변경하기 힘들 때 text를 모두 replace 치면 된다. 시작해보자

php

writing a simple removeEmoji function stackoverflow 글에 좋은 함수가 있다.

소스

1
2
3
4
5
<?php
$textWithEmoji = 'thumbs up👍👍';
$text = removeEmoji($textWithEmoji);
// text => thumbs up

node

emoji-regex 라이브러리를 쓰면 된다.

1
$ yarn add emoji-regex

소스

1
2
3
4
5
6
7
const emojiRegex = require('emoji-regex')
// const regex = emojiRegex()
const textWithEmoji = 'thumbs up👍👍'
const text = textWithEmoji.replace(emojiRegex(), '')
// text => thumbs up

여담

이모지처리 (붙히고 제거하고), linkify를 합친 통합 모듈이 있다면 다운로드 수가 좀 될 것 같은데.