Dobře, konečně se mi to podařilo zprovoznit! Děkuji všem, kteří se mi snažili pomoci, zejména @Rick James a @Gerard Roche.
NÁVRH:
Pokud potřebujete pracovat s emotikony, proveďte nejprve jednoduché testy na localhost. Vytvořte novou databázi a vytvořte novou aplikaci pro účely testování.
Pokud budete postupovat podle kroků, které jsem napsal v otázce, nebo pokud budete postupovat podle tohoto návodu: https://mathiasbynens.be/notes/mysql-utf8mb4#utf8-to-utf8mb4 musí to fungovat.
Když budete pracovat lokálně na nové základní aplikaci, budete mít větší kontrolu a více prostoru pro provedení všech potřebných testů.
ŘEŠENÍ:
V mém případě byl problém v konfiguraci databáze v CodeIgniter. Nebylo správně nastaveno char_set a řazení pro hloupé přehlížení:Přepsal jsem nastavení databáze ve funkci, která ukládá zprávy, abych se ujistil, že funguje s mobilní databází.
PŘED:
function message_save ( $data = FALSE )
{
$project_db_config = array();
$project_db_config['hostname'] = 'MY_HOST';
$project_db_config['username'] = 'MY_USERNAME';
$project_db_config['password'] = 'MY_PASSWORD';
$project_db_config['database'] = 'MY_DATABASE';
$mobile_db = $this->load->database( $project_db_config, TRUE );
// other code to save message
}
PO:
function message_save ( $data = FALSE )
{
$mobile_db_connection = $this->load->database('admin_mobile_mh', TRUE);
// other code to save message
}
ZÁVĚR:
Aplikace musí správně nastavit připojení k databázi. Pokud máte databázi správně nastavenou, ale nenavážete správné připojení k aplikaci, nebude to fungovat.
Pokud tedy narazíte na podobné problémy, ujistěte se, že rozhraní API správně nastavilo char_set
jako utf8mb4
a db_collat
jako utf8mb4_unicode_ci
.