Снова кодировка, на этот раз PHP

Andrey1812

Новичок
ДОбрый день, что то я не могу понять, задал кодировку базы - utf-8, браузер тоже в этой кодировке, но выводятся одни ромбы.
Подскажите в чем проблема, уже сил моих нет.
 

Andrey1812

Новичок
Все что можно перепробовал, но все равно ромбы.
PHP:
<? header("Content-Type: text/html; charset=utf-8");?>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
mysqli_query($connection, "SET NAMES utf8");
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
а файл ты в какой кодировке сохранил?
 

Фанат

oncle terrible
Команда форума
Здесь было уже 100500 клиентов, которые бодро рапортовали
Все что можно перепробовал!
А когда начинаешь его за ручку по пунктам водить - сразу "ой, это забыл", "ай, там накосячил".

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

Ромбики означают, что браузер не понимает пришедшие символы. то есть, ему приходит не утф.
вот и разбирайся - почему ты ему отправляешь не утф, а что-то другое
 

Фанат

oncle terrible
Команда форума
да кодировка файла не имеет отношения к данным из базы.
 

Фанат

oncle terrible
Команда форума
это не кодировка. и "база" - понятие очень растяжимое. и я говорил не про "кодировку базы", а про данные, приходящие в браузер.
 

Фанат

oncle terrible
Команда форума
если при просмотре выбрать 1251 в браузере - что показывает? скопируй сюда
 

Andrey1812

Новичок
Что-то маловато. Ты точно всё скопировал?
Да, точно, я приведу вам код страницы.
PHP:
<?php

    function db_connect(){
        $host = 'localhost';
        $user = 'admin';
        $pswd = 'admin';
        $db = 'rembytteh';
        
        $connection = mysqli_connect($host, $user, $pswd, $db);
        
        if(!$connection)
        {
            return false;
        }
        return $connection;
    }
    
    function db_result_to_array($result){
        $res_array = array();
        
        $count = 0;
        while($row = mysqli_fetch_array($result)){
            $res_array[$count] = $row;
            $count++;
        }
        return $res_array;
    }
    
    function get_repair_type(){
        $connection = db_connect(); 
        
        $query = "SELECT type FROM repairs ORDER BY id";
        $result = mysqli_query($connection, $query);
        $result = mysqli_fetch_array($result);
        
        return $result;   
    }
    
    function get_repairs(){
        $connection = db_connect();
        
        $query = "SELECT * FROM repairs ORDER BY id";
        $result = mysqli_query($connection, $query);
        
        $result = db_result_to_array($result);
        return $result;
    }
$result = get_repair_type();
    
    foreach($result as $item){
    echo ($item['type']);    
    }

        
?>
 

Фанат

oncle terrible
Команда форума
Вообще-то я тебя просил написать, что она выводит.
Ну окей, ладно, пусть будет пхп код.
и где в нём mysqli_query($connection, "SET NAMES utf8");?
 

Andrey1812

Новичок
Вообще-то я тебя просил написать, что она выводит.
Ну окей, ладно, пусть будет пхп код.
и где в нём mysqli_query($connection, "SET NAMES utf8");?
Это я просто уже убрал, если добавить, ситуация не изменится.
PHP:
<?php

    function db_connect(){
        $host = 'localhost';
        $user = 'admin';
        $pswd = 'admin';
        $db = 'rembytteh';
        
        $connection = mysqli_connect($host, $user, $pswd, $db);
        
        if(!$connection)
        {
            return false;
        }
        mysqli_query($connection, "SET NAMES utf8");
        return $connection;
    }
    
    function db_result_to_array($result){
        $res_array = array();
        
        $count = 0;
        while($row = mysqli_fetch_array($result)){
            $res_array[$count] = $row;
            $count++;
        }
        return $res_array;
    }
    
    function get_repair_type(){
        $connection = db_connect(); 
        
        $query = "SELECT type FROM repairs ORDER BY id";
        $result = mysqli_query($connection, $query);
        $result = mysqli_fetch_array($result);
        
        return $result;   
    }
    
    function get_repairs(){
        $connection = db_connect();
        
        $query = "SELECT * FROM repairs ORDER BY id";
        $result = mysqli_query($connection, $query);
        
        $result = db_result_to_array($result);
        return $result;
    }
$result = get_repair_type();
    
    foreach($result as $item){
    echo ($item['type']);    
    }

        
?>
Действительно, я понял, что это запрос данные корявые выдает.
 
Сверху