If you have this problem, you should check 4 things.
Encoding of tables
Open PhpMyAdmin and check whether the database is encoded with utf8mb4_unicode_ci and also all the columns have the same encodign or not
Encoding of MySQL
If you are on Linux, go to /etc/mysql/my.cnf and add or edit the following:
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
collation-server = utf8mb4_unicode_ci
init-connect='SET NAMES utf8mb4'
character-set-server = utf8mb4
Then restart mysql:
$ sudo service mysqld restart
Encoding in connection
If you are using PHP to connect, add the encoding just after the connection in this way:
$conn = new mysqli($servername, $username, $password, $db);
$conn->query("SET NAMES 'utf8mb4'");
Encoding in frontend
If you are running on HTML try to put this meta tag
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

