在MySql数据库中存储表情符号。显示???在phpmyadmin

时间:2018-01-23 12:16:08

标签: php html mysql database phpmyadmin

显示问号???同时将表情符号存储在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;

table structure and all elements

3 个答案:

答案 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表情符号。