Php iOS表情符号未正确存储在MySQL中

Php iOS表情符号未正确存储在MySQL中,php,ios,mysql,objective-c,utf-8,Php,Ios,Mysql,Objective C,Utf 8,我正在为iOS开发一个聊天应用程序,并试图将聊天文本存储在一个MySQL数据库中。正常的文本可以正常工作,即使是像德语“umlaute”这样的特殊字符。我将文本作为Json发送到服务器 如果我使用iOSemoticons键盘上的表情符号,则不起作用,如下所示: {"userid":"1","message":"Test 123 ⚽️❤️I've solved a similar problem setting up the table and column to utf8mb4: For ea

我正在为iOS开发一个聊天应用程序,并试图将聊天文本存储在一个MySQL数据库中。正常的文本可以正常工作,即使是像德语“umlaute”这样的特殊字符。我将文本作为Json发送到服务器

如果我使用
iOS
emoticons键盘上的表情符号,则不起作用,如下所示:

{"userid":"1","message":"Test 123 ⚽️❤️I've solved a similar problem setting up the table and column to 
utf8mb4
:

For each table:

ALTER TABLE table_with_emojis CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin

{“userid”:“1”,“message”:“Test 123”⚽️❤️ 我已经解决了一个类似的问题,将表和列设置为
utf8mb4

对于每个表:

ALTER TABLE table_with_emojis CHANGE column_with_emojis VARCHAR(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin
以及该表的每一列:

正如本文所解释的(它适用于RubyonRails,但您可以将其应用于PHP)

SO有一个非常好的答案,其中包含更多细节和其他可能的问题:


如前所述,如果您的数据库中已经有表情符号,请小心(这不是我的情况,因为我以前无法存储任何表情符号)

您需要确保在整个渲染管道中使用相同的字符集。您忘记了一些东西,例如php->mysql连接。啊哈,谢谢!数据库配置文件中将CodeIgniter设置为UTF-8。我将其设置为UTF-16,它可以工作。谢谢Marc,第二次发布是正确的答案!警告:如果您如果你没有存储表情符号,这将损坏你所有的表情符号数据。谢谢你,瓦拉普,我在答案中添加了一个通知