Personalmente ho risolto lo stesso problema aggiungendo dopo il codice di connessione MySQL :
mysql_set_charset("utf8");
o per MySQL:
mysqli_set_charset($conn, "utf8");
o l'equivalente OOP di mysqli:
$conn->set_charset("utf8");
E a volte dovrai definire il set di caratteri php principale aggiungendo questo codice:
mb_internal_encoding('UTF-8');
Sul lato HTML del client devi aggiungere i seguenti dati di intestazione:
<meta http-equiv="Content-type" content="text/html;charset=utf-8" />
Per utilizzare i risultati JSON AJAX (ad es. utilizzando jQuery), è necessario definire l'intestazione aggiungendo:
header("Content-type: application/json;charset=utf8");
json_encode(
some_data
);
Questo dovrebbe fare il trucco