Некорректное отображение данных в БД phpMyAdmin

Есть Сайт к которой я подключил базу данных из phpMyAdmin. Сайт по регистрации пользователей. Делаю всё на локалке. На сайте ввожу данные на русском языке то есть кириллице а в базе данных отображаться чепуха какая-то. Пробовал кучу разных сравнений, cp1251_general_ci, UTF8 и кучу других но так и не смог сделать так чтобы данные отображались нормально. Как это сделать?

Файл в котором я подключаю БД к сайту.

<?php

$host = "localhost";
$user_name = "root";
$user_password = "";
$db_name = "userdb";

$con = mysqli_connect($host,$user_name,$user_password,$db_name);

?>

Файл с регистрацией

<?php

require "init.php";
$name = $_GET["name"];
$user_name = $_GET["user_name"];
$user_password = $_GET["user_password"];

$sql = "select * from login_info where user_name = '$user_name'";

$result = mysqli_query($con,$sql);

if(mysqli_num_rows($result)>0)
{
$status = "exist";
}

else
{
$sql = "insert into login_info(name,user_name,user_password) values('$name','$user_name','$user_password');";
    
    if(mysqli_query($con,$sql))
    {
        $status = "ok";
    }
    else
    {
        $status = "error";
    }
}
echo json_encode(array("response"=>$status));

mysqli_close($con);

?>

html

<html>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8"/>
<title>This is a tast web page</title>

<body>

<form method="get" action="register.php">

<table>

<tr>
<td>
Name:
</td>
<td>
<input type="text" name="name"/>
</td>

</tr>

<tr>
<td>
User name:
</td>
<td>
<input type="text" name="user_name"/>
</td>
</tr>

<tr>
<td>
Password :
</td>
<td>
<input type="password" name="user_password"/>
</td>

</tr>

<tr>
<td>
<input type="Submit" value="Register"/>
</td>

</tr>

</table>
</form>

</body>

</html>

Ответы (3 шт):

Автор решения: S.H.

Когда Вы создаёте таблицу в базе данных, Вы указываете кодировку, в которой будет происходить работа с этой таблицей. Попробуйте работать везде (включая страницы сайта) с UTF8, это должно решить все проблемы.

→ Ссылка
Автор решения: DrMcSheen

В базе делайте таблицу со сравнением utf8_general_ci (лучше сделайте таблицу с нуля, ибо изменение кодировки иногда работает некорректно). Кстати, у полей внутри таблицы, кодировку тоже можно менять.

В php в начало файла вставьте: header('charset=utf-8');

Также на html страницах: <meta charset="utf-8">

→ Ссылка
Автор решения: Dmitry_allread_return

У меня была такая же проблема, только я использовал подключение к бд с помощью PDO. Обычное подключение в PDO выглядит следующим образом:

$link = new PDO("mysql:host=localhost;dbname=DB");

Я добавил "charset=UFT8" и все начало корректно отображаться, вот так это выглядит:

$link = new PDO("mysql:host=localhost;dbname=DB;charset=UTF8");

В вашем случае с mysqli попробуйте после коннекта к базе добавить такую строчку:

mysqli_query("set names 'utf8'");

→ Ссылка