所以,我试图在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格式,如下所示:
然而,它只是导致了这个:
<?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????
以及有关编码错误的错误消息。
我在这里缺少什么编码设置?