이모지(emoji) 아이콘 출력을 위해서 데이터정렬방식을 변경했는데요.
아래의 링크 스크린샷을 첨부했고요.
http://www.letsgokor.com/wp-content/uploads/2017/09/Untitled-1.jpg
화면처럼 phpmyadmin에서 KBoard에 관련된 모든 테이블의 데이터정렬방식을
utf8_general_ci 에서 utf8mb4_general_ci 로 변경하였습니다.
그래도 제대로 나타나지 않는데 혹시 더 변경시켜줘야 하는 부분이 있는지 여쭤봅니다.
호스팅업체에서는 플러그인 관련해서는 답변을 주질 않네요~ㅠ
안녕하세요.
kboard_board_content 테이블의 구조에서
title 혹은 content 컬럼의 데이터정렬방식도 utf8mb4 로 변경을 해보시겠어요?
이모지(emoji) 저장은 워드프레스나 플러그인 문제가 아니라 데이터베이스 문제이니 데이터베이스 쪽을 변경해주시면 문제없이 사용하실 수 있을 겁니다.
고맙습니다.
현재 그렇게 설정되어 있는 상태이나 똑같이 저장이 되질 않네요..
일단 케이보드 말고도 제가 변경할 수 있는 다른 테이블도 모두 utf8md4_general_ci로 바꾸긴했습니다만 현상은 같습니다.
wp_links, wp_users, wp_comments, wp_posts는 변경 시도시 엑세스가 거부되어서 변경을 못합니다. 나머지는 다 했고요.
호스팅 업체랑도 통화하면서 종일 붙잡고 있는데 도대체 왜 안되는지 모르겠습니다..
추가적으로 제가 이모지가 들어간 내용을 소셜댓글 체험하기에 넣어봤는데 작성이 안되네요? 여기도 설정이 같은건가요?
uft8_unicode
안녕하세요.
"utf8mb4_unicode_ci" 로 변경을 해보시겠어요?
wp_posts 등 테이블도 변경을 해줘야 할 듯합니다.
카페24의 PHP 7.0 호스팅에서는 이모지(emoji) 저장이 잘되는 걸로 봐서는 뭔가 서버 환경설정 문제 같습니다.
wp-config.php 파일에서 DB_CHARSET 설정을 아처럼 바꿔주세요.
define('DB_CHARSET', 'utf8mb4');
그리고 실제로
phpMyAdmin 쪽에서 이모지(emoji) 저장이 되는지도 테스트 해보시겠어요?
아래 링크 자료가 도움이 되지 않을까 합니다.
안녕하세요. 제가 여러가지 귀찮게 하는것 같네요 ㅠ
일단 모두 "utf8mb4_unicode_ci"로 변경했으나 현상은 같습니다.
그리고 wp_posts 등 몇개의 테이블의 데이터정렬방법을 변경하려고 시도하면 아래와 같이 표시되고 거부됩니다.
그리고 실제로 phpMyAdmin쪽에서 강제로 해당 텍스트를 복사하여 넣었을때와
실제로 그 게시물을 브라우저로 표시했을때 차이는 다음과 같았습니다.
저장은 제대로 된거 같은데 이모지는 '?'로 나오네요..
일단 이것도 강제로 텍스트를 수정해서 본거라 의미가 있을라나 모르겠군요.
어쨌든 제가 이용하는 닷홈에서는 데이터베이스를 에디트하는 것은 허용되지 않는다고 하네요.
제가 만든 데이터베이스에서도 어떤 테이블은 수정이 되고 어떤 테이블은 안되는 이유도 사실 모르겠습니다. wp는 제가 설치한건데 말이죠..
유추가 되는 부분이 혹시 있으신가요? 만약 정 답이 없으면 말씀하신 카페24쪽으로 호스팅을 옮기던지 해야겠네요..
phpMyAdmin 쪽에서도 이모지(emoji) 삽입이 안된다면
프로그램 문제가기보단 DB 설정이 문제의 원인일 가능성이 좀 높아보입니다.
phpMyAdmin 쪽에서 이모지(emoji) 삽입이 된다면 물음표(?)가 아닌 정상적으로 이모지(emoji)가 보여집니다.
또한 wp_posts 등 테이블 수정이 안되는건 이상하군요.
보안상의 이유료 직접 편집 삭제 등이 안되게 웹호스팅에서 막은건지.. (어째서 인지..)
저희도 추가로 정보를 찾아보겠습니다 ㅎㅎ
기관 이전중에 이것저것 더 해보다가 원인을 알게 되어 글을 남겨놓습니다.
원인은 php버전 때문에 그랬네요. 7.0인줄 알았는데, 기본이 5.7이었습니다.
7.0으로 세팅하고 워드프레스를 다시 설치해서 테스트해보니 이모지가 제대로 등록이 되는군요.
물론 처음 캐릭터셋을 utf8mb4로 맞춰놓고 워드프레스를 설치했었습니다.
혹시나 같은 문제를 찾아보실 분이 있을 것 같아 글을 남겨놓습니다.