iPhone表情符号插入MySQL但成为空白值

tec*_*_me 10 php mysql iphone utf8mb4

我们正在开发一个iPhone应用程序,可以将表情符号从iPhone发送到服务器端PHP并插入到MySQL表中.我在做服务器端的工作.

但插入语句执行成功后,插入的值变为空白.
我可以正确插入字段(varchar)的是文本,但是一旦包含表情符号,
就可以插入文本并自动剪切表情符号.

有人给我建议将字段类型设置为Blog,以便它可以存储图像数据.
但插入的值并不总是包括表情符号的情况和大小很小.

*我使用mysql_real_escape_string来插入值.

dec*_*eze 23

大多数iOS表情符号使用Unicode表的基本多语言平面上方的代码点.例如,(带开口和微笑眼睛的微笑)是U + 1F604.

OS X角色查看器

现在,请参阅http://dev.mysql.com/doc/refman/5.5/en/charset-unicode.html.

版本5.5之前的MySQL仅支持BMP的UTF-8,其中包括U + 0000和U + FFFF之间的字符(即只有实际UTF-8的子集; MySQL utf8不是真正的UTF-8).它不能将字符存储在代码点U + 1F604或其他类似的"高字符"中.MySQL 5.5+支持utf8mb4(实际的UTF-8),utf16并且utf32能够对这些字符进行编码.如果您使用的是MySQL 5.5+,请使用其中一个列字符集,并确保您使用相同的字符集进行PHP连接编码.如果您使用MySQL <5.5,则必须使用BLOB列类型.该类型存储原始字节而不关心其中的"字符".缺点是您将无法有效地搜索或索引文本.