从MySQL数据库打印php中的unicode会导致编码错误

时间:2018-06-08 09:54:12

标签: php mysql xml unicode utf-8

所以,我试图在php中回显一个xml文件,如下所示:

<?php
header("Content-type: text/xml; charset=utf-8");
echo '<?xml version="1.0" encoding="UTF-8"?>';
echo "<root>
";

$servername = "localhost";
$dbuser = "root";
$dbpass = "";
$dbname = "tiles";
$conn = mysqli_connect($servername, $dbuser, $dbpass, $dbname);
if (!$conn) {
    die("Connection failed: " . mysqli_connect_error());
}

$sql = "SELECT * FROM ajrpg_spritedata";

if ($result=mysqli_query($conn,$sql)){
    while ($row=mysqli_fetch_row($result)){
        echo '<botass>
    <arr>data</arr>
    <ID>' . $row[0] . '</ID>
    <data>7A8B20A6B8C3B16AB6C8D3ĊČ3ďC5D8E3ĔĖ1ąBCD15ĞĠB9ęĦĝğCĈĭ21EDıĀĤD22ĶıĎĺ23ľB5ij4ń4ijĨķBĘŁ6ń2ij7ńĭ9Ķ1ŕōŗřĝķ2ĺŘĮľšĥE2CőŤŠĺŨŪĶőũŃDūıĭşŲCĽDśıœĺĨ2DŨŽĶşıŏĚDĨ7DţıŊŁňōƒĥŌŚƅıņĺƔ1ň4ōŀĥƔƘ0ƚĐęěEě1żĿijƯƩƝřŲōƜƗřƂƢęƃƔƔŘİƳŧơCơŕěưƁEıCƮĩƛƱƅŅijŴǑăĔĶţĝƃıĢAżşŕ1ĬūŃ</data>
    <data>' . $row[1] . '</data>
';
    }
    mysqli_free_result($result);
}

mysqli_close($conn);
echo "</botass>
</root>";
?>

第一个数据元素是复制/粘贴unicode,只是为了查看它是否实际显示正确,如果它获得正确的数据,第二个数据元素是从MySQL数据库获取的,并且它全部保存为utf-8文本文件。

数据库包含两个字段,ID和存储在文本字段中的unicode数据字符串,其中utf8mb4_bin格式为utf8mb4_bin格式,如下所示:

enter image description here

然而,它只是导致了这个:

<?xml version="1.0" encoding="UTF-8"?><root>
<botass>
    <arr>data</arr>
    <ID>1</ID>
    <data>7A8B20A6B8C3B16AB6C8D3ĊČ3ďC5D8E3ĔĖ1ąBCD15ĞĠB9ęĦĝğCĈĭ21EDıĀĤD22ĶıĎĺ23ľB5ij4ń4ijĨķBĘŁ6ń2ij7ńĭ9Ķ1ŕōŗřĝķ2ĺŘĮľšĥE2CőŤŠĺŨŪĶőũŃDūıĭşŲCĽDśıœĺĨ2DŨŽĶşıŏĚDĨ7DţıŊŁňōƒĥŌŚƅıņĺƔ1ň4ōŀĥƔƘ0ƚĐęěEě1żĿijƯƩƝřŲōƜƗřƂƢęƃƔƔŘİƳŧơCơŕěưƁEıCƮĩƛƱƅŅijŴǑăĔĶţĝƃıĢAżşŕ1ĬūŃ</data>
    <data>7A8B20A6B8C3B16AB6C8D3??3?C5D8E3??1?BCD15??B9????C??21ED???D22????23?B5?4?4???B??6?2?7??9?1??????2????

以及有关编码错误的错误消息。

我在这里缺少什么编码设置?

0 个答案:

没有答案