This was copied from a Stackoverflow answer
Things to consider in PHP/MySQL/UTF-8

The database tables and text columns should be set to UTF-8
HTML page Content-Type should be set to UTF-8

PHP should send a header informing the browser to expect UTF-8

header('Content-Type: text/html; charset=utf-8' );

The PHP-MySQL connection should be set to UTF-8

mysqli_query("SET CHARACTER_SET_CLIENT='utf8'",$conn);

mysqli_query("SET CHARACTER_SET_RESULTS='utf8'",$conn);

mysqli_query("SET CHARACTER_SET_CONNECTION='utf8'",$conn);

PHP ini has default_charset setting it should be utf-8 if you do not have access to it use ini_set('default_charset', 'utf-8');