Osobiście rozwiązałem ten sam problem, dodając po kodzie połączenia MySQL :
mysql_set_charset("utf8");
lub dla mysqli:
mysqli_set_charset($conn, "utf8");
lub odpowiednik mysqli OOP:
$conn->set_charset("utf8");
A czasami będziesz musiał zdefiniować główny zestaw znaków php dodając ten kod:
mb_internal_encoding('UTF-8');
Po stronie HTML klienta musisz dodać następujące dane nagłówka:
<meta http-equiv="Content-type" content="text/html;charset=utf-8" />
W celu wykorzystania wyników JSON AJAX (np. przy użyciu jQuery) należy zdefiniować nagłówek dodając :
header("Content-type: application/json;charset=utf8");
json_encode(
some_data
);
To powinno wystarczyć