Ciao scusa non è luogo per spiegare il comportamento da locale a remoto, nonché creare la pappa pronta del codice (poiché è necessario avviare la conversazione dalla base, sintassi i tipi primitivi etc, senza materiale è impossibile farlo , perdonami io non riesco a spiegarlo in poche righe.)
Probabilmente è un problema di codice php legacy, cioè la connessione può solamente essere avviata con https://www.php.net/manual/en/mysqli.set-charset.php e poi query SET NAMES utf8 (indica anche altri fattori, cerca sul tuo motore di ricerca SET NAMES cosa significa). Ergo il punto 2 da me citato in precedenza.
Per istruzioni su MysqlAdmin https://dev.mysql.com/doc/refman/8.0/en/mysqladmin.html default-charset e altro (option tramite file).
Non utilizzare MysqlAdmin ma visualizza l'output con php.
Il carattere à in esadecimale UTF-8 è C3A0 questa sequenza se letta in ISO-8859-1 significa à e non breaking space (carattere non stampabile) A0.
La stringa in PHP è implementata come un array di byte e un numero intero che indica la lunghezza del buffer. Non ha informazioni su come quei byte si traducono in caratteri, lasciando il compito al programmatore. Non ci sono limitazioni sui valori di cui può essere composta la stringa; in particolare, i byte con valore 0("NUL byte") sono consentiti ovunque nella stringa (tuttavia, alcune funzioni, dette in questo manuale come non "binary safe", possono trasferire le stringhe a librerie che ignorano i dati dopo un NUL byte.)
Codice PHP:
$string = 'citt' . "\XC3\XA0";
//Esiste anche la compatibilità da decimale 0 a 127 senza X
//Se servito come documento html UTF-8
var_dump($string); // città
//in realtà è del semplice testo poiché non rispecchia il markup HTML ma bensì text/plain "txt"
?>
L'importante che il file salvato supporti US-ASCII
Inoltre se la tabella interna (php) non trova corrispondenza della sequenza di byte (detto in altro modo: sequenza non valida) di htmlspecialchars restituisce una stringa vuota.
In cima usa sempre, il punto 8 accenna l'uso implicito del terzo parametro $enconding per prevenire errori tra versioni php diverse (però comunque la tabella interna potrebbe ugualmente variare, bug).
Codice PHP:
error_reporting(-1);
ini_set('display_startup_errors', '1');
ini_set('display_error', '1');