Здравствуйте! Прошу помощи! На OpenServer все работало правильно. Как установил сайт на хостинг появились непонятные символы в базе данных от кириллицы. Латиница работает правильно. Проблема в базе данных. В таблицу базы данные на кириллице ( логин, имя, фамилия) записываются непонятными символами. Например, "Администратор" записывается "Администратор". Поэтому в дальнейшем неправильно обрабатывается скриптом. В браузере эти записи отображаются корректно, а скриптом обрабатываются неправильно. Поддержка хостинга не может помочь. Было предложение "В скрипте которым добавляется текст не в той кодировке, после соединения с базой данных, установите правильную кодировку соединения. Информация https://php.ru/manual/function.mysql-set-charset.html" Мне непонятно, почему на OpenServer соединение с базой данных работает, а на хостинге это же соединение с базой данных не работает? На OpenServer база данных настроена не правильно? Но я выполнил, и это не помогло. PHP: function regUser($family, $name, $login, $email, $password, $photo) { $mysqli = connectDb(); mysqli_set_charset( 'utf-8', $mysqli); // добавил это расширение $result = $mysqli->query("INSERT INTO ......; closeDb($mysqli); return $result == true; } Потом предложили PHP: mysqli_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $mysqli); вместо mysqli_set_charset( 'utf-8', $mysqli); И это не помогло. В корне сайта .htaccess с директивой AddDefaultCharsetUTF-8. На файлах установлена UTF-8. В head: HTML: <meta charset="UTF-8"> Помогите, пожалуйста, решить проблему. Последняя помощь от поддержки: Наймите специалиста, чтобы он отладил скрипт. Глобальные настройки mysql на хостинге нельзя поменять, есть и другие пользователи, которые работают.
Значит делали неправильно. Либо проблема не тут и достаточно было просто выставить header() с указанием кодировки.
Потому что в таком случае ты указываешь mysql кодировку соединения напрямую через драйвер БД. В противном же случае ты посылаешь запрос к БД, в котором указана кодировка, в которой она должна понимать запросы... Это бред того же времени, что выставления кодировки на странице через <meta>. Это не работает, это прокатывает.