MOODLE 3.x:

mysql_full_unicode_support

Problem

Moodle is showing the following warning. Moodle is unable to use or safe emojis or graphical fonts.

mysql_full_unicode_support
The current setup of MySQL or MariaDB is using 'utf8'. This character set does not support four byte characters which include some emoji. Trying to use these characters will result in an error when updating a record, and any information being sent to the database will be lost. Please consider changing your settings to 'utf8mb4'.

mysql_full_unicode_support

CAUSE

The default database configuration uses utf8 instead of utf8mb4, with four-byte characters. One part of confirmation resides on the webserver side, and the second one is on the Moodle side.

Resolution

WARNING!
Playing with the DB configuration on existing Moodle database can result unexpected issues. Please backup your Moodle data and server configuration.

WEB-SERVER side

If you using Linux webhosting you need to login to SSH and edit MariaDB database configuration file called server.cnf located "etc/my.cnf.d/server.cnf"

vim etc/my.cnf.d/server.cnf

ADD under [mysqld]
innodb_file_format = Barracuda
innodb_file_per_table = 1
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

etc/my.cnf.d/server.cnf

Moodle side

In your Plesk hosting portal, visit “PHP Settings” > "Common settings" and change the open_basedir to “none”.
Save the config and reload your Moodle page.

vim config.php

ADD under $CFG->dboptions = array {
'dbcollation' => 'utf8mb4_general_ci',

Moodle config.php

Existing Moodle Installations (Extra Step)

As your existing database if stored in utf8 you must convert all your data to the utf8mb4. To do so you need to execute CLI command to convert all your data to the new collation. Failed to do so you will have bunch of Moodle errors accessing old data.
Below is the PHP CLI command

php admin/cli/mysql_collation.php  --collation=utf8mb4_unicode_ci