Добрый день. Настроил подключение к базе через php (последние три строчки - не помогающие эксперименты со stackoverflow)
function __construct($host=HOST,$user=USER,$pass=PASS,$db=DATABASE){
$this->conn = new mysqli($host, $user, $pass, $db);
$this->conn->set_charset('utf8');
//$this->conn->query('SET NAMES utf8 COLLATE utf8_unicode_ci');
//$this->conn->query('SET character_set_results utf8');
//$this->conn->query("SET SESSION collation_connection = 'utf8_general_ci'");
}
При запросе к базе выдает русский текст в виде знаков вопроса. Настройки базы соответствуют рекомендациям(SHOW VARIABLES LIKE 'character_set%'):
Variable_name Value
character_set_client utf8mb4
character_set_connection utf8mb4
character_set_database utf8mb4
character_set_filesystem binary
character_set_results utf8mb4
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
Когда такая проблема появилась на локальной машине, я раскомментировал в настройках mysql(my.ini) директивы для работы s utf8,
## UTF 8 Settings
init-connect=\'SET NAMES utf8\'
collation_server=utf8_unicode_ci
character_set_server=utf8
skip-character-set-client-handshake
character_sets-dir="C:/xampp/mysql/share/charsets"
изменил character_set_server на utf8, и все исправилось. Так как доступа на хостинге к этому файлу нет, и изменить настройку сервера я не могу(ТП хостера говорит, что character_set_database приоритетней и по их части все ок), то я зашел в тупик.
Спасибо!