2012-04-14 2 views
8

이모티콘에 대한 모든 주제를 읽은 후에 나는 약간의 도움을 요청할 것입니다. 질문은 거의 같다. 아이폰 앱을 통해 PHP 그림 이모티콘을 통해 MySQL DB로 전송된다. 예를 들어 "우산"과 "클라우드"로 레코드의 일부 기호를 볼 수 있지만 다른 것은 아니다 (화난 얼굴, 웃는 얼굴, 그리고 다른).MySQL과 PHP에서 이모티콘 : 왜 어떤 상징은 그렇지 않은가?

왜 그렇습니까?

  • MySQL의 데이터 정렬 : utf8mb_unicode_ci
  • 표 정렬 : utf8mb_unicode_ci
  • 필드, VARCHAR, 정렬 : utf8mb_unicode_ci

PHP 설정 :

mysql_query("SET CHARACTER SET utf8mb4"); 
    mysql_query("SET NAMES utf8mb4"); 

기호는 기록 안에 보여 주었다하지 물음표 "?"로 표시됩니다.

답변

11

일부 이모티콘은 3 바이트를 사용하여 인코딩됩니다. 컴퓨터에서 그림 이모티콘을 지원하는 경우 다음 3 바이트 그림이 있습니다.

☺❤✨❕❔✊✌✋☝☀ ☎➿✂⚽⚾⛳ ♠ ♥ ♣ ♦ 〽☕⛪⛺⛲⛵✈⛽⚠ ♨1⃣2⃣3⃣4⃣5⃣6⃣7⃣8⃣9⃣0⃣ # ⃣⬆⬇⬅➡↗↖↘↙ ◀ ▶ ⏪⏩♿㊙㊗✳✴♈♉♊♋♌♍♎♏♐♑♒♓⛎⭕❌ © ® ™

나머지는 4 바이트를 사용하여 인코딩됩니다 mysql을 utf8mb4로 업데이트하지 않으면 작동하지 않을 것이다. utf8mb4로 완전히 업그레이드하지 않은 것 같습니다.

+0

대단히 감사합니다. Jake, 나는 당신의 방향을 찾을 것입니다. 지금 당장 나는 타겟 필드와 테이블을 올바른 데이터 정렬로 변환했지만 뭔가를 놓쳤을 것입니다. 나는이 주제를 갱신 할 것이다. 고맙습니다 – Fabrizio

+0

나는 3 바이트 이모티콘을 확인 했으므로 확인되었습니다. 내가 놓친 부분은 데이터 정렬을 변경해야하는 부분입니다. 이모티콘을 녹음해야하는 필드에는 utf8mb4_unicode_ci 데이터 정렬이 있습니다. 해당 필드가 들어있는 테이블에 utf8mb4_unicode_ci 데이터 정렬이 있습니다. 일반 설정 (phpMyAdmin)에서 MySQL 데이터 정렬은 utf8_general_ci이며 utf8mb4_unicode_ci로 변경하려고하면 자동으로 이전 설정으로 되돌아가는 것으로 보입니다. 이런 이유로 문제가 있는지 나는 모른다. 나는 계속 수색 할 것이다. – Fabrizio

+3

@ Fabrizio 필자는 [utf8에서 utf8mb4로 업그레이드하는 방법에 대한 자세한 안내] (http://mathiasbynens.be/notes/mysql-utf8mb4)를 작성했습니다. 아마도 도움이 될 것입니다. –

관련 문제