显示问号???同时将表情符号存储在MySQL数据库中。我已经将数据库和表格排序设置为utf8mb4。但是,它仍然显示??? ???而不是数据库中的表情符号。我还试图改变PHPMYADMIN控制台中的现有行。但没有任何工作。显示???而不是Unicode字符。 我还更改了桌面的存储引擎。 InnoDB,MyISAM
SET NAMES utf8mb4;
ALTER DATABASE your_database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
答案 0 :(得分:1)
请参阅this answer:在保存和加载时,您需要在途中设置utf8mb4,PHP必须知道在与数据库通信时也使用编码。
添加截图后:数据库中很可能已经存在不良数据 - 我猜测问题在于将表情符号保存到数据库的方式,而不是加载它的方式(尽管可能都是这样)。
答案 1 :(得分:0)
我终于得到了解决方案。 我们必须将连接字符集设置为utf8。 声明连接变量set charset后:
mysqli_set_charset($ CON, “UTF8”);
之后,您的表情符号或任何其他unicode文本将被加密并保存在mysql数据库中。
答案 2 :(得分:0)
我有同样的问题。我正在使用CodeIgniter框架。
所以我在application\config\database.php
'char_set' => 'utf8mb4',
'dbcollat' => 'utf8mb4_unicode_ci',
它开始在数据库中启动storimg表情符号。