작업실

그누보드5에 이모지 이모티콘 사용하기 (MariaDB, MySQL, utf8mb4)

컨텐츠 정보

본문

1. Emoji 이모지 문자열 이모티콘이란?

 

에모지(絵文字, Emoji; 한국 한자: 회문자)는 일본의 휴대 전화 단문 메시지(SMS)에서 사용하는 이모티콘 또는 그림 문자를 가리킨다. 에모지는 일본어에서 "그림"을 뜻하는 글자 "絵"의 음과 "문자"를 뜻하는 글자 "文字"의 음을 그대로 합성해서 만든 단어이다. 이모티콘과 유사하지만 더 많은 그림 문자를 제공하고 있다.

 

출처 : https://ko.wikipedia.org/wiki/%EC%97%90%EB%AA%A8%EC%A7%80

간단하게 요새 스마트폰의 키보드에 내장되어 있는 이모티콘이라고 보시면 됩니다. 

 

예를 들어 안드로이드 구글한글키보드에서 나오는

 

 

▲  바로 위와 같은 것들이죠.

 

이것을 쓰는 이유는 일반적인 이모티콘보다 트래픽이 훨씬 적게 소모되기 때문입니다.

 

그리고 각 브라우저마다 표현하는 방식은 다르지만, 거의 대부분의 브라우저에서 지원을 하고 있기 때문에 충분히 쓸만하기 때문입니다.

 

 

하지만 일반적인 서버DB의 문자셋은 utf8이기 때문에 utf8mb4로 바꿔줘야 제대로 표현이 됩니다.

 

 

2. DB서비스에서 설정 수정하기

 

1) MariaDB의 경우 /etc/mysql/conf.d/mariadb.cnf 에서

 

# MariaDB-specific config file.

# Read by /etc/mysql/my.cnf

 

[client]

default-character-set = utf8mb4

 

[mysqld]

# * Character sets

character-set-client-handshake = FALSE

character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci

character_set_server = utf8mb4

collation_server = utf8mb4_unicode_ci

위와 같이 수정해줍니다. 

 

 

2) MySQL의 경우 5.5.3버전부터 utf8mb4가 지원이 됩니다.

 

https://dev.mysql.com/doc/relnotes/mysql/5.5/en/news-5-5-3.html

 

/etc/my.cnf 에서

 

[client]

default-character-set = utf8mb4

 

[mysql]

default-character-set = utf8mb4

 

[mysqld]

character-set-client-handshake = FALSE

character-set-server = utf8mb4

collation-server = utf8mb4_unicode_ci

character_set_server = utf8mb4

collation_server = utf8mb4_unicode_ci

위와 같이 수정해줍니다. 

 

 

service mysql restart

위 명령어로 MySQL, MariaDB를 재시작해줍니다. 

 

 

3. DB에서 utf8mb4가 적용되었는지 확인하기

 

mysql -u root -p

위 명령어로 MySQL, MariaDB로 들어간 후 

 

SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';

위 명령어를 내리면 

 

 

+--------------------------+--------------------+

| Variable_name            | Value              |

+--------------------------+--------------------+

| character_set_client     | utf8mb4            |

| character_set_connection | utf8mb4            |

| character_set_database   | utf8mb4            |

| character_set_filesystem | binary             |

| character_set_results    | utf8mb4            |

| character_set_server     | utf8mb4            |

| character_set_system     | utf8               |

| collation_connection     | utf8mb4_unicode_ci |

| collation_database       | utf8mb4_unicode_ci |

| collation_server         | utf8mb4_unicode_ci |

+--------------------------+--------------------+

위와 같은 결과물이 나오면 성공입니다. 

 

참고로 character_set_system utf8은 변경되지 않는다고 합니다.

 

(출처 : https://mathiasbynens.be/notes/mysql-utf8mb4 )

 

 

 

4. 그누보드 수정하기

 

그누보드 루트에 common.php의 대략 139번째 줄에서

 

 

sql_set_charset('utf8', $connect_db);

위 내용을 

 

 

 

sql_set_charset('utf8mb4', $connect_db);

위와 같이 수정해줍니다. 

 

 

5. 그누보드 DB 글내용, 댓글입력 수정하기

 

 

아래 작업 DB를 수정하는 것이므로 반드시 DB를 백업한 후 작업하시길 바랍니다.

 

 

1) Putty에서 작업하기

 

 

mysql -u root -p

위 명령어로 MySQL이나 MariaDB로 접속합니다. 

 

 

ALTER DATABASE yourdatabasename CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

위 명령어로 해당하는 DB의 전체를 수정합니다.

 

 

 

2) phpmyadmin에서 작업하기

 

데이터베이스 -> 데이터베이스 이름 클릭 -> 구조 탭에서 게시판의 테이블을 클릭합니다.

 

참고로 이 작업은 적용을 원하는 게시판 마다 반복적으로 작업해야 합니다.

 

예를 들어 게시판이 100개가 있다면 100번 해줘야 합니다. (일괄로 바꾸는 방법을 잘 몰라서...)

 

이제 free라는 게시판 테이블이 있다면 g5_write_free 테이블을 클릭합니다.

 

그러면 DB 의 보기 탭에 들어가 있을 것입니다.

 

이제 구조 탭을 누릅니다.

 

10번 wr_subject에서 오른쪽에 실행에 보면 변경이 있습니다.

 

 

 

▲  참조하시면 좋습니다. 

 

 

데이터정렬방식을 utf8mb4_unicode_ci로 바꾸고 저장을 눌러줍니다.

 

11번 wr_content에서 오른쪽에 실행에 보면 변경이 있습니다.

 

데이터정렬방식을 utf8mb4_unicode_ci로 바꾸고 저장을 눌러줍니다.

 

 

10번은 게시판 제목, 11번은 게시판의 글내용과 댓글, 대댓글에 에모지 사용 가능하게 해줍니다.

 

 

게시판 수가 많을수록 작업할게 있겠지만 크게 어렵지 않기 때문에 쉽게 하실 수 있을 듯 합니다.

 

그리고 추가로 필요한 곳이 있다면 해당 부분에 작업해주시면 입출력이 잘 될 것입니다.

 

 

6. 구글한글키보드에서 Emoji 문자열 이모티콘 적용하기

 

이제 실제로 스마트폰에서 어떻게 입력할 수 있는지 봅시다.

 

 

 

▲  위와 같이 그림이 있는 곳을 누릅니다.

 

 

 

▲  위와 같이 그림이 있는 곳을 누릅니다.

 

 

 

▲  이제 처음에 봤던 바로 그 이모티콘들을 볼 수 있습니다.

 

 

 

 

▲  위와 같이 제목과 내용에 에모지를 넣어봅시다.

 

 

 

▲  위와 같이 게시물에 잘 작성이 되고, 잘 출력이 되는 것을 볼 수 있습니다.

 

 

7. 참조 링크

 

https://blog.lael.be/post/917

https://mathiasbynens.be/notes/mysql-utf8mb4

http://stackoverflow.com/questions/7814293/how-to-insert-utf-8-mb4-characteremoji-in-ios5-in-mysql

http://sir.kr/so_server/719

http://sir.kr/cm_free/1371882

https://ko.wikipedia.org/wiki/%EC%97%90%EB%AA%A8%EC%A7%80

관련자료

  • 서명
    우성짱의 NAS를 운영하고 있습니다.

    저의 즐거움이 여러분의 즐거움이면 좋겠습니다.

댓글 0
등록된 댓글이 없습니다.
Total 157 / 6 Page
RSS
미소 베이직 4.0 테마로 작업 완료했습니다. 댓글 4

기존 테마는 미소 베이직 3.0이었습니다.하지만 오늘 미소 베이직 4.0이 나오면서 바로 갈아탔습니다. ㅎㅎ예전에 10월 초에 나온다고 들었었는…

그누보드5에 이모지 이모티콘 사용하기 (MariaDB, MySQL, utf8mb4)

1. Emoji 이모지 문자열 이모티콘이란?에모지(絵文字, Emoji; 한국 한자: 회문자)는 일본의 휴대 전화 단문 메시지(SMS)에서 사용하…

텔레그램 공유하기 버튼 추가

예전에 반짝 인기 있었던 텔레그램으로 웹페이지의 URL을 보내는 버튼을추가하는 방법입니다.그누보드5 순정은 http://sir.kr/g5_tip…

Nginx에서 모든 요청을 https non-www로 돌리는 방법 두번째

한달 전 쯤에 링크1에 올린 글처럼 작성했었습니다.링크2에서 더 좋아보이는(?) 듯한 방법이 있어, 현재 제 홈페이지도 이렇게 적용했습니다.1.…

그누보드5 내용스킨 본문 폰트크기 변경하기

요새와서 홈페이지를 만지다보니 내용스킨의 글자 폰트 크기가 너무 작은 것을 느꼈습니다.네이버나 다음, 다른 워드프레스 홈페이지보다 훨씬 작더라구…

그누보드5 X Nginx FastCGI Cache

지난 10월 22일부터 여기 홈페이지에 적용했습니다만 장점보다 단점이 많아서 잠시 중단 중입니다.현재는 테스트 사이트에만 적용하고 있습니다. (…

최근글


새댓글


알림 0