Оставляя это здесь для тех, кто приходит на этот сайт через Google, потому что у них такая же проблема, но вместо этого использует PDO (например, я) - с вами должно быть хорошо:
$dns = "mysqli:host=localhost;dbname=db_name";
$pdo = new PDO($dns, 'db_user', 'db_pass',
array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
$pdo->exec("SET CHARACTER SET 'utf8'");