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

Fab*_*zio 8 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");
Run Code Online (Sandbox Code Playgroud)

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

Jak*_*ake 11

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

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

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

  • @Fabrizio我写了[关于如何从`utf8`升级到`utf8mb4`的详细指南](http://mathiasbynens.be/notes/mysql-utf8mb4) - 也许它可以帮到你. (3认同)