This question already has answers here:
UTF-8 all the way through
                                
                                    (15个答案)
                                
                        
                                2年前关闭。
            
                    
嗨,所以我从mysql数据库中获取带有拉丁字符(如“ó”)的文本。这是我用来获取数据的查询的连接,并将其放置在数组中:

<?php
    header('Content-Type: text/html; charset=UTF-8');
    $con=new mysqli ("localhost","root","","chroniclemark");

    $sqlget = "SELECT descricao FROM items;";
    $sqldata = mysqli_query($con,$sqlget) or die ('error getting database');
    while ($row = mysqli_fetch_array($sqldata, MYSQLI_ASSOC)) {
        $lol5[] = $row['descricao'] ;
     }?>


然后,我试图像这样在<?php ?>语句之外显示文本:

<p ><?php echo $lol5[0]; ?></p>


除“ç”,“ó”,“ã”等外,所有文本都可以。
我的标头中也有一个元标记<meta charset="UTF-8">,但没有帮助。
在数据库中,数据设置为“ utf8mb4_unicode_ci”。
我该怎么做才能解决此问题?任何想法?

最佳答案

@Fred -ii感谢您在评论中指出我的正确方向。
我要做的就是在进行查询之前使用mysqli_set_charset($con, 'utf8mb4');

$sqlget = "SELECT descricao FROM items;";
 $sqldata = mysqli_query($con,$sqlget) or die ('error getting database');


现在一切都好:)

09-28 03:48