MySQL无法显示非ascii(“外来”)数据

时间:2017-01-20 01:02:21

标签: mysql

有没有人知道Collat​​ion,这将允许我显示外键,例如é,而不将其显示为?

我如何展示

    <?php

    if ($result->num_rows > 0) {
        while($row = $result->fetch_assoc()) {
    ?>
            <tr><td><?=$row["id"]?></td> 
            <td><?=$row["game"]?></td>
            <td><?=$row["server"]?></td>
            <td><?=$row["datetimepicker1"]?></td>
            <td><?=$row["et"]?></td>
            <td><?=$row["sc"]?></td>
            <td><?=$row["ss"]?></td>
            <td><?=$row["ec"]?></td>
            <td><?=$row["es"]?></td>
            <td><?=$row["attending"]?></span></td>
    <td><p data-placement="top" data-toggle="tooltip" title="Delete">
   <button class="btn btn-danger btn-xs" data-title="Delete" data-toggle="modal" >
   <span class="glyphicon glyphicon-trash"></span></button></p></td>
<?php } 
} else { ?>
    <td colspan="5">0 results</td>
<?php } ?>

enter image description here

enter image description here

我也试过

mysqli_set_charset($con,"utf8");

但似乎没有任何效果我尝试了很多字符集类型,但它仍然是?

1 个答案:

答案 0 :(得分:1)

从MySQL到HTML输出的字符设置就像通过一组非常长的吸管饮用,将细小的液体吸到嘴里,每根吸管都必须是正确的,没有堵塞且没有扭结。

<强> I highly recommend reading this topic

要在具有正确字符集的浏览器上显示MySQL表中的数据,您需要:

1)将MySQL列Collat​​ion设置为(例如)UTF8mb4

2)(同时将MySQL表格Collat​​ion设置为(类似)UTF8mb4))

3)将MySQL 连接整理/字符集设置为UTF8mb4

4)使用multbyte strings plugin将PHP活动字符集设置为UTF-8。

mb_internal_encoding('UTF-8');
// Tell PHP that we'll be outputting UTF-8 to the browser
mb_http_output('UTF-8');

5)将HTML字符编码设置为UTF-8,标题为:

header('Content-Type: text/html; charset=utf-8');

或HTML头元标记。

作为旁注(可能会解决您的问题):

mysqli_set_charset($con,"utf8");

这是PROCEDURAL这样做的方式,但您的代码看起来像是在使用面向对象的 MySQLi,所以我建议使用:

 $con->set_charset("utf8mb4");