2017-10-09 37 views
-6

이모티콘 심볼을 데이터베이스 레코드에 저장하려하지만 올바르게 저장하지 않을 때마다. 나는 이것을 How to store Emoji Character in My SQL Database이라고 말했지만 여전히 작동하지 않습니다.
위의 질문에 대한 해결책에 따라 문자 집합을 utf8에서 utf8mb4로 변경하고 utf8mb4_bin에서 데이터 정렬을 변경하려고했습니다.

기본값으로 재설정 한 다음 데이터베이스 테이블에서 변경하는 것과 같은 모든 작업을 시도했습니다. utf8mb4_unicode_ci, utf8_unicode_ci 및 utf8mb4_bin 시도했지만 작동하지 않습니다.

MySQL 5.6 버전을 사용하고 있습니다. 그리고 아래의 쿼리
MySQL 버전 5.6에서 이모티콘 문자()가 utf8mb4_bin과 함께 작동하지 않습니다.

alter table `users` convert to character set utf8mb4 collate utf8mb4_bin; 

위의 코드는 데이터베이스에서 UTF 유형을 변경하는 것, 잘 작동과 데이터 정렬을 변경하고 있습니다.

CREATE TABLE IF NOT EXISTS `users` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'System generated id used for uniqueness', 
    `introduction` longtext COLLATE utf8mb4_bin, 
    `other_details` longtext COLLATE utf8mb4_bin,  
    PRIMARY KEY (`id`), 
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin AUTO_INCREMENT=41213 ; 


는 PHP 코드 아래 사용하여 이모티콘을 저장하려면 :하지만 이모티콘은 물음표 (????) 아래

내 데이터베이스 테이블 구조의 예를 그대로 저장하는 것 제대로 저장되지 않는다

$dom = new DOMDocument('1.0', 'UTF-8'); 
$strWithEmoji = ""; 
$fullContent = '<meta http-equiv="content-type" content="text/html; charset=utf-8">' 
       + $strWithEmoji; 
$this->save($fullContent); // Function for saving into database 


내가 호 정확히 모른다 w 많은 바이트를 저장하고 있지만 이 그림 이모티콘 문자 ""를 저장하려하고 있으며 4 개의 물음표 (????)로 저장하고 있습니다.


내가 링크 아래에서 모든 솔루션을했지만, 나를 위해 일하지 않았다 :
How to store Emoji Character in My SQL Database
UTF-8 all the way through
The ultimate emoji encoding scheme

+0

@ Liam 이미 요청한 모든 해결책을 시도했지만 작동하지 않습니다. – KRY

+1

2 일 전 원래 질문에서 아무 것도 추가하지 않았습니다. 동일한 질문을 여러 번하지 마십시오. 작동하지 않는 것은 문제가 아닙니다. – Liam

+0

@Liam 질문이 삭제되었습니다. – KRY

답변

3

연결 MySQL로 utf8mb4를 지정해야합니다. DOMDocument의 내용은 무엇입니까?

CHARACTER SET utf8mb4의 열에서 작동해야하며 utf8mb4_* 데이터 정렬입니다. Trouble with UTF-8 characters; what I see is not what I stored

모든 사람의 경우, 연결을 설정 한 후 PHP에서 SET NAMES utf8mb4을 실행 실패 : 여기

그리고

다른 링크입니다.