关于MySQL和PHP的表情符号:为什么有些符号是其他没有?

时间:2012-04-14 12:15:10

标签: php mysql emoji utf8mb4

在阅读了有关表情符号的所有主题之后,我有必要寻求帮助。 问题似乎几乎相同:我有一个iPhone应用程序通过PHP表情符号发送到MySQL数据库,我可以看到记录上的一些符号,例如“伞”和“云”,但其他没有(愤怒的脸,笑脸,和其他)。

为什么有些是和其他没有?

  • MySQL排序规则:utf8mb_unicode_ci
  • 表格排序:utf8mb_unicode_ci
  • Field,varchar,collat​​ion:utf8mb_unicode_ci

PHP设置:

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

记录中未显示的符号显示为问号“?”

1 个答案:

答案 0 :(得分:11)

一些表情符号使用3个字节进行编码。如果您的计算机支持表情符号,则以下是3字节的表情符号:

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

其余的使用4个字节进行编码,除非您将mysql更新为utf8mb4,否则无法使用。听起来你没有以某种方式完全升级到utf8mb4。