Выбор кириллического текста из базы данных с помощью PDO

У меня проблемы с выбором кириллического текста из базы данных. Я получаю несколько неопределенных символов вместо букв. Я искал в интернете целый день, но ничего.

Функция подключения:

protected function pdo_connect(){
$instance = new PDO('mysql:dbname='.self::SERVER_DB_DATABASE.';host='.self::SERVER_DB_HOST.';charset=utf8', self::SERVER_DB_USER, self::SERVER_DB_PASS);
$instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$instance->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$instance->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, 'SET NAMES utf8');
return $instance;
}

И выделение текста из базы данных:

$temp=array();
$stmt=$this->db->query("SELECT * FROM table");
$result=$stmt->fetchAll(PDO::FETCH_ASSOC);
for($i=0; $i < count($result); $i++){
$temp[$result[$i]['text_index']]['en']=$result[$i]['en'];
$temp[$result[$i]['text_index']]['sr_lat']=$result[$i]['sr_lat'];
$temp[$result[$i]['text_index']]['sr_cyr']=$result[$i]['sr_cyr'];
}
return $temp;

И когда я выбираю данные из базы данных, я получаю что-то вроде этого:
введите описание изображения здесь
Как видите, кириллический текст не отображается должным образом, но он правильно отображается в базе данных:
введите описание изображения здесь

И упомянуть, что у меня установлены заголовки:

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

Так в чем здесь проблема?

1

Решение

Попробуйте исправить свой код подключения, чтобы:

protected function pdo_connect(){
$instance = new PDO('mysql:dbname='.self::SERVER_DB_DATABASE.';host='.self::SERVER_DB_HOST.';charset=utf8', self::SERVER_DB_USER, self::SERVER_DB_PASS);
$instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$instance->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$instance->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, 'SET NAMES utf8; SET CHARACTER SET utf8; SET SESSION collation_connection = utf8_general_ci;');
return $instance;
}
1

Другие решения

Других решений пока нет …