Php 由于GB2312编码,动态创建的XML文件中存在编码错误?

Php 由于GB2312编码,动态创建的XML文件中存在编码错误?,php,mysql,xml,character-encoding,gb2312,Php,Mysql,Xml,Character Encoding,Gb2312,我用MySQL和PHP生成了带有GB2312编码的XML文件,因为我的网站上有汉字 在我将我的网站从共享的网络主机移到Ubuntu 16.04 VPS并安装了Plesk之前,它工作得很好 现在,我所有的XML文件都会抛出一个编码错误,我认为这是因为GB2312编码 当我通过标准的Plesk安装安装所有东西时,服务器是否可能无法识别编码 如果是,是否有设置或方法在我的服务器上启用/安装GB2312编码 <?php header ("content-type: text/xml"); echo

我用MySQL和PHP生成了带有GB2312编码的XML文件,因为我的网站上有汉字

在我将我的网站从共享的网络主机移到Ubuntu 16.04 VPS并安装了Plesk之前,它工作得很好

现在,我所有的XML文件都会抛出一个编码错误,我认为这是因为GB2312编码

当我通过标准的Plesk安装安装所有东西时,服务器是否可能无法识别编码

如果是,是否有设置或方法在我的服务器上启用/安装GB2312编码

<?php
header ("content-type: text/xml");
echo '<?xml version="1.0" encoding="GB2312"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">';

include 'connection.php';
mysqli_query($bd, "SET NAMES GB2312");
$query = mysqli_query($bd, "SELECT MAX(datum) as max_datum FROM apps") or die(mysqli_error());
$dateMAX = mysqli_fetch_assoc($query);
$date = $dateMAX['max_datum'];

$urls = mysqli_query($bd, "SELECT appID, title, id FROM apps WHERE id >= 1 AND id < 50000")or die(mysqli_error());
while ($string = mysqli_fetch_array($urls)) { 
    $title = $string['title'];
    $titletrim = preg_replace('/[_%:"`\[\]\.\(\)%&-\'|!?\.,#‘<>]/s', '', $title);
    $titleurl=str_replace(' ', '-', $titletrim);
?>
    <url>
        <loc>http://easitunes.com/<?php echo $titleurl."-".$string['appID']; ?></loc>
        <lastmod><?php echo $date; ?></lastmod>
        <changefreq>hourly</changefreq>
        <priority>1</priority>
    </url>
<?php
 } 
?> 
</urlset>

向我们展示给你带来麻烦的东西的十六进制。我不知道怎么做,但你可以在这里看到:肯定是这一行引发了第一个错误:“easitunes.com”/加油安全设备-641491196“preg_replace
的目的是什么?“header”需要指定gb2312。向我们展示给您带来麻烦的东西的十六进制。我不知道如何做,但您可以在这里看到:肯定是这一行引发了第一个错误:“easitunes.com”/加油安全设备-641491196“preg_replace的目的是什么?”“标题”需要指定gb2312。